0

リモートの場所に複数の Python バージョンがインストールされています。/remote/Python-2.7/bin/pythonまたは/remote/Python-2.7.2-shared/linux32/bin/pythonetc...... コードでは、/remote/Python-2.7-shared を使用します。Python-2.7 (numpy、matplotlib など) にインストールされているが共有場所ではないモジュールを使用する必要があります。コードでは、次のような Python コードを開始します。

#! /usr/bin/env py

異なる Python バージョンからモジュールをインポートすることは可能ですか?

1 つの提案は、Google 検索から得たものです。コードの最初の行で Python パスを変更できます。

#! /remote/Python-2.7/bin py

ただし、共有にインストールされ、コードに必要なパッケージもありません。この問題を修正するための入力をお願いします。

IT 担当者が複数のバージョンの Python をインストールする理由が理解できませんでした。共有の場所に同じパッケージをインストールするための多くの承認が必要なチケットを発行することもできます (つまり、パッケージをインストールするためのチケットはありません)。

ノート。すべてのオプションを試しましたが、何も機能していないようです。多分私は間違いをしています。 フルパスを指定してモジュールをインポートする方法は?

どんな入力でも私を大いに助けます。

私は提案の下で試しましたが、次のエラーで終わります。sys.path.inser(0,"path_location")

Traceback (most recent call last):
    import numpy
  File "/remote/Python-2.7.2/lib/python2.7/site-packages/numpy/__init__.py", line 137, in <module>
    import add_newdocs
  File "/remote/Python-2.7.2/lib/python2.7/site-packages/numpy/add_newdocs.py", line 9, in <module>
    from numpy.lib import add_newdoc
  File "/remote/Python-2.7.2/lib/python2.7/site-packages/numpy/lib/__init__.py", line 4, in <module>
    from type_check import *
  File "/remote/Python-2.7.2/lib/python2.7/site-packages/numpy/lib/type_check.py", line 8, in <module>
    import numpy.core.numeric as _nx
  File "/remote/Python-2.7.2/lib/python2.7/site-packages/numpy/core/__init__.py", line 5, in <module>
    import multiarray
ImportError: /remote/Python-2.7.2/lib/python2.7/site-packages/numpy/core/multiarray.so: cannot open shared object file: No such file or directory
4

2 に答える 2

3

「shebang」行は、スクリプトの実行に使用するスクリプト実行可能ファイルを *nix-ish OS に通知するためのスクリプトの機会です。インストールされている Python インタープリターの特定のバージョンを指定する場合は、これが適切な方法です。

デフォルト パス/PYTHONPATH の外にモジュールをインポートする場合は、次の 2 つのオプションがあります。

  • PYTHONPATH 環境変数を変更します
  • スクリプトで sys をインポートし、次のようにパスを変更します。

    import sys  
    sys.path.insert(0, "path_to_module")  
    

これにより、スクリプトの実行中にスクリプトのパスがカスタマイズされ、後続importの がターゲット ファイルを見つけられるようになります。

virtualenvs が推奨されるオプションです。しかし、タスクを達成することだけが目的の場合もあります。

于 2013-10-17T16:56:46.630 に答える
2

本当に必要なのはVirtual Envs (仮想環境) のようです。これらは、同じマシンに複数の Python をインストールするための事実上の方法です。

SheBang に関するこのウィキペディアの記事を読むことをお勧めします。何が起こっているのかを理解するのに役立ちます。

最初の行 (SheBang) は、実行したいインタープリターの実行可能ファイルでなければなりません。インストールしたいライブラリがあるものを使用してください。感嘆符とコマンドの間にスペースを入れないでください。

試す:

#!/remote/Python-2.7.2-shared/linux32/bin/python

また

#!/remote/Python-2.7/bin/python

使用するインタープリターをシェルで実行してから、使用するモジュールをインポートできるはずです。

$ /remote/Python-2.7/bin/python
Python 2.7.3 (default, Dec 18 2012, 13:50:09)
[GCC 4.5.3] on cygwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy
>>>

リモート マシンのコンソールでこれらのコマンドを実行できない場合は、使用しているインタープリターを変更する必要があります。使用しないでください #!/bin/env python。使用する python を決定するためにユーザー環境のパスが使用されるためです。何が起こっているのかを発見するのにもっと苦労するでしょう。実行したいインタープリターを直接使用します。

シンプルにするために、#! は使用しないでください。

于 2013-10-17T02:36:10.470 に答える