0

コードを github に置いていますが、実装の問題に遭遇しました。多くのコンピューターで同じコードを実行しています (root アクセス権を持っていないコンピューターを含む)。

1 つのコード (bash スクリプト) は、次のような Python コードを呼び出します。

python somecode.py

シェルは正しいバージョンの python を実行しますが、somecode.py を見つけられません。

私が試したこと:

失敗 #1: somecode.py を含むディレクトリとファイルへのフル パスの両方を PATH に追加しようとしました。無駄に。[Errno 2] そのようなファイルまたはディレクトリはありません

失敗 #2: 一番上の行に正しいバージョンの python へのフル パスを追加すると、1 台のコンピューターでのみ動作させることができます。

#!/usr/local/cool/python/version/location

ただし、これにより、他のコンピューターでの実行が中断されます。

失敗 #3: bash スクリプトに次のように記述させると、機能させることもできます。

python /full/path/to/github/place/somecode.py

ただし、パスはコンピューターごとに異なるため、これは 1 つのコンピューターでのみ機能します。

本当にやりたいこと: 複数のコンピューターで同じコード (bash スクリプトと somecode.py の両方) を使用できるようにしたい。

これを適切に行う方法についての提案は大歓迎です。ありがとう!

解決

追加した:

#!/usr/bin/env python

私の somecode.py コードの先頭へ。

mv somecode.py somecode
chmod +x somecode

PATH に /full/path/to/directory/with/somecode があることを確認してください。

Bash スクリプトは現在、次のようにのみ記述しています。

somecode

そしてそれは動作します。

4

2 に答える 2

5

問題#2については、試してください

#!/usr/bin/env python

異なるマシンで異なるバージョンのPythonが見つかる可能性がありますが、それが問題でない限り、これで特定の問題が修正されるはずです。

このSOの質問Pythonのデプロイメントと/usr/ bin/envの移植性も参照してください。そして、AlexMartelliによるこの投稿はこれを再利用しています。

于 2012-06-25T12:47:20.387 に答える
2

あなたが言うと、からではなく、現在のディレクトリとしてのpython somefile.py場所を取ります。fromの場所を取ります。somefile.py$PATHpython$PATH

あなたが言うと、 from の場所とfromsomefile.pyの場所を取ります Pythonスクリプトの行から、@Levonの提案に従えばPATHを使用できます。somefile.py$PATHpython#!

于 2012-06-25T13:00:06.783 に答える