pythonスクリプトをpyenv
virtualenv
から実行すると、ファイルの正しいシバンは何ですか?pythonスクリプトで使用するshebangをpyenv virtualenvで実行する
私のシステム(OSX)のデフォルトのpythonにはpandas
がインストールされていません。 pyenv virtualenv venv_name
はそうです。私は、virtualenvからpython実行ファイルのパスを取得しようとしました。
$ pyenv activate venv_name
(venv_name)$ which python
/Users/username/.pyenv/shims/python
だから私は、私の例script.py
製:
#!/Users/username/.pyenv/shims/python
import pandas as pd
print 'success'
をしかし、私はスクリプトを実行しようとしたとき、私はエラーだ:それを実行しているが、
(venv_name) $ ./script.py
./script.py: line 2: import: command not found
./script.py: line 3: print: command not found
をコマンドラインのパスは正常に動作します:
(venv_name) $ /Users/username/.pyenv/shims/python script.py
success
(venv_name) $ python script.py # also works
success
これに適したシバンは何ですか?理想的には、私は現在のvenvが何であれ、Pythonを指すように一般的なものを必要とします。
私はこれをたくさん使っていて、うまく動作します。 '#!/ home/dslima90/.virtualenvs/production_enviroment/bin/python'という、うまく動作する私のシバンの一例は、おそらくあなたのパスをチェックしますか?ビンがなくなっていませんか? – DSLima90
しかし、あなたの現在の環境を指し示すことを望むなら、 '#! Python'? – DSLima90
@ DSLima90最後の例は、スクリプトを直接実行する際にパスが正常に動作することを示しています。私は '#! python:エラー: '-bash:./script.py:python:悪いインタプリタ:そのようなファイルやディレクトリはありません ' – xgord