簡體   English   中英

使python程序可執行的問題

[英]Issue with making python program executable

我正在嘗試創建一個程序,以便我可以使用以下格式通過命令行運行它:

./myProgram

我把它變成了可執行文件並將#!/usr/bin/env python放在標題中,但它給了我以下錯誤。

env: python\r: No such file or directory

但是,當我運行“python myProgram”時,它運行正常。 有人能告訴我我做錯了什么嗎?

你的行結尾是錯誤的。 使用dos2unix來修復它們。

關於ignacio的建議+1。

但是,為了更直接地回答問題的第1部分,每個OS /系統使用不同的行終止字符:

POSIX(任何Unix風格,如Linux,* BSD,Mac OS X等)使用\\n (NEWLINE)而DOS / Win使用組合\\r\\n (CR /回車+ NEWLINE)和舊Mac OS 8或9僅使用CR或\\r

要解決這個問題,您可以運行像ignacio建議的實用程序,或者您應該可以從文本編輯器中執行此操作(但可能不是很明顯)。

回答問題的另一部分, $ python myProgram工作原因是因為Python將所有三個不同的行結尾都視為相同...頂部的shebang行被忽略,因為你告訴Python加載並運行該腳本, “ # ”表示第一行是注釋,因此被忽略。

當你告訴你的操作系統shell運行它時,它需要解析該行並執行你請求的任何解釋器,但如果它不能,它會像你一樣嘔吐。

希望這可以幫助!

PS。 在旁注中,您可以找到操作系統上正在使用的行終止字符,只需查看os.linesep (數據)屬性即可。 例如,在我的Mac(OS X)上,我得到了這個:

>>> import os
>>> os.linesep
'\n'

這里是我從我的核心Python簡介課程筆記中抄襲的其他相關屬性的快速摘要: alt text

dos2unix filename.py或在vim內部發出命令:set fileformat=unix並保存。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM