1
>> which python
/usr/bin/python
>> python --version
Python 2.4.x

私の問題は非常に単純です。python の別のインストール (例: /usr/bin/python26) で python プログラムを実行するにはどうすればよいですか?

デフォルトとは異なる python インストールで Scrapy を実行できるようにしたいのですが、質問は Unix のようなシステムで実行される Python で書かれたプログラムを対象としています。

編集:明確にするために、他の誰かが書いたインストール済みプログラムを実行したいのですが、通常は次のように実行されます。

scrapy crawl blaha

そうではありません:

python scrapy crawl blaha
4

3 に答える 3

6

通常、Unix システムでは、たとえば私のシステムでは複数の Python 実行可能ファイルがあります。

which python
/usr/bin/python
which python2
/usr/bin/python2

実行可能ファイルの名前は、アプリケーションのバージョンを示します。これは、 PEP 394 で定義されているように、さまざまなバージョンの Python の標準です。スクリプトがどのバージョンを使用する必要があるかを示すために、通常行うことは、ハッシュバンを提供することです。たとえば、私のシステムでは、Python 3.x がデフォルトの Python であるため、2.x スクリプトを作成する場合は、次を追加します。

#!/usr/bin/env python2

次に、スクリプトを実行すると ( ./some_script.py)、Python 2.7.3 が使用されます。

#!/usr/bin/env python異なるシステムで異なることを行うため、使用を避ける必要があります。仕様に従っている場合は、#!/usr/bin/env python22.x を指し、3.x を指す必要が#!/usr/bin/env python3あります - Arch では、これは正しく機能します ( python3.x を指すだけでも (通常は))。

編集の更新:

それを行いたい場合、最も簡単な方法は、システム パスにコマンドを実行する実行可能ファイルを作成することですpython some_script ...

これは定期的に行われます。たとえば、eclipse私のシステムでは実際に実行されます/usr/bin/eclipse- 以下を含む bash スクリプト:

#!/bin/bash
export ECLIPSE_HOME=/usr/share/eclipse
export GDK_NATIVE_WINDOWS=true
${ECLIPSE_HOME}/eclipse "$@"

したがって、問題については、パスのどこかにスクリプトを作成するだけです(たとえば、/usr/bin/scrapy)。

#!/bin/bash
python2 scrapy "$@"

将来的には、回答を得た後に変更するのではなく、問題についてできるだけ多くの情報を前もって提供するようにしてください。

于 2012-05-10T12:22:54.040 に答える
1

プログラムをどのように実行していますか? 実行ビットが設定されていて、最初の行があります:

#!/usr/bin/python

次に、次のようにします。

#!/usr/bin/python26

または、次のようにすることもできます。

>> python26 your-awesome-python-script.py

編集について: サードパーティのプログラム (scrapy) を変更できない/変更したくないため、次のいずれかを行う必要があります。

  • 再リンク/usr/bin/python(実行します。実行可能ファイルをls -l指していることがわかります。これを再リンクするには、または同様の操作を行います)python24ln -s /usr/bin/python /usr/bin/pythonXY
  • のエイリアスを作成scrapyします.profile
  • 適切な呪文を実行する独自のスクレイピー シェル スクリプトを作成します (たとえば、お好みのインタープリターでスクリプトを実行します)。
于 2012-05-10T12:24:39.000 に答える
1

インストールでさまざまなバージョンの python を使用できるように設計されているVirtualEnvをご覧ください。

既にインストールされている python バージョンを使用する場合は、python2.6 を使用する場合python2.6の代わりに使用してください。python

于 2012-05-10T12:24:49.637 に答える