私はシェルで毎回明示的に「python」を呼び出す必要なしにpythonスクリプトを実行したい。Shebang#!/ path/to/pythonを追加しようとしたが、これはしない動作しているように見えます。
Shebangを追加する必要があります。
#!/usr/bin/env python
次に、スクリプトを実行可能にします。
chmod +x foo
その後、他の実行可能ファイルと同様に実行できます。
./foo
また、Homer6からのメモ:Windowsでファイルを編集してLinuxで呼び出すと、不可解な「No such file or directory」エラーが発生する場合があります。これは、行の行末がLFではなくCRLFになっているためです。それらをLFに変換すると、スクリプトは期待どおりに実行されます。 Notepad ++>表示>シンボルを表示>行末を表示してEOL文字を表示します。また、Notepad ++>編集> EOL変換> Unix形式を使用して、すべての行末をLFに変換します。または、ほとんどのLinuxシステムにあるdos2unix
ツール(dos2unix foo.py
)を使用できます。
これは実際には個人のスクリプトには適用されませんでしたが、beets
を引用しているように、パッケージを配布するときにこのアクションを自動化することもできることに注意してください。 setuptools _entry_point
_ オプション。
したがって、myModule
のようなパッケージを配布し、コンソールでmymodulescript
と入力してmain_function()
関数にアクセスできるようにしたい場合は、おそらく次のようなものを追加します。これを_setup.py
_ファイルに:
_setup(
# your other arguments ..
entry_points={
'console_scripts': [
'mymodulescript = myModule:main_function'
]
}
)
_
スクリプトの先頭に行を追加します。
#! /usr/bin/env python
script_name.py
からscript_name
に変更しますchmod +x script_name
上部の行は、プロンプトでpythonと入力したときに取得するものと同じpython
を選択します。直接パスを指定することもできます。
#!/opt/python/3.6/bin/python
別の回避策は、.bashrcで定義されたエイリアスを使用することです。
例えば.bachrcファイルに次の行を追加します。
alias mypythonalias = "python mypyrhonfile.py"
ターミナルで入力:
source ~/.bashrc
そして、あなたは単に入力することができます:
mypythonalias
pythonファイルを実行します。
端末で/ path/to/pythonを実行できることを確認します。また、pythonファイルの実行許可を与えていることを確認してください。ファイルの許可を与えるには、
chmod +x mypythonfile.py