2017-10-05 68 views
0

私はPython 2.7.13と
を使用しています 私はカスタムディレクトリにインストールするときにruamel.yamlをインポートする際に問題が発生しています。次のようにカスタムディレクトリにruamel.yamlをインストールする際のPythonインポートエラー

**ImportError: No module named ruamel.yaml** 

使用するコマンドは次のとおりです。

pip install --target=Z:\XYZ\globalpacks ruamel.yaml 

私はPYTHONPATHのENV変数
に、このカスタムディレクトリを追加しても、次の行
Z:\XYZ\globalpacks\anotherAppと、この場所で.pthファイルを持っています
Z:\XYZ\globalpacks\ruamel

tと同様にインストールされた別のアプリがあります彼は設定
を上回って動作します。

私はここで何が欠けていますか?

PS:私はruamelフォルダにのinitの.pyファイル
を作成したとき
も、それはカスタムフォルダで働いていたのsite-packagesフォルダにインストールすると、それは動作します。

EDIT:

当社のコンテンツ作成ソフトウェアは、Python 2.7を使用していますので、我々はsame.Weを使用して
に制限されているが、すべての
のマシン上でのpythonの同じバージョンをインストールすることを選択し、へへのインポートパスを設定しています共有の上にあるモジュール/アプリケーションを指す
ネットワークドライブ。
pythonsサイトパッケージでは動作しますが、ネットワークドライブでは動作しません。
PYTHONPATH env-variableにあります。
ruamel.yaml-**.nspkg.pthruamel.ordereddict-*-nspkg.pth
ある律儀installed.Sorry完全な詳細を与えていないためearlier.Your入力
ははるかに高く評価されています。

答えて

0

.pthファイルからその2行目を削除する必要があります。パッケージ名がruamel.yaml(つまり名前空間パッケージ)で、ruamelではないため、間違っています。その行は正しい読み込みを妨げ、pip installはすでに適切なruamel.yaml-0.15.34-py3.6-nspkg.pthファイルを作成しているはずです。

私は簡単にWindows上でこれをテストするが、ここでは、Linux上でどのような作品であることはできません。PYTHONPATHの設定

$ mkdir /tmp/globalpacks 
$ mktmpenv 
Using real prefix '/opt/python/3.6.3' 
New python executable in /home/venv/tmp-10a2a253b4063883/bin/python 
Installing setuptools, pip, wheel...done. 
This is a temporary environment. It will be deleted when you run 'deactivate'. 
(tmp-10a2a253b4063883) $ pip install --target /tmp/globalpacks ruamel.yaml 
Collecting ruamel.yaml 
    Using cached ruamel.yaml-0.15.34-cp36-cp36m-manylinux1_x86_64.whl 
Installing collected packages: ruamel.yaml 
Successfully installed ruamel.yaml-0.15.34 
(tmp-10a2a253b4063883) $ python 
Python 3.6.3 (default, Oct 5 2017, 07:00:09) 
[GCC 4.8.4] on linux 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import ruamel.yaml 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
ModuleNotFoundError: No module named 'ruamel' 
>>> import sys 
>>> sys.path.insert(0, '/tmp/globalpacks') 
>>> import ruamel.yaml 
>>> >>> print(ruamel.yaml.__version__) 
0.15.34 

は、本当の問題はもちろんですsys.path


に挿入すると同じように動作するはずですあなたは本当にあなたがそれを共有する必要があるディスクスペースできわめてタイトであるかどうか(共有)globalpacksディレクトリ。そうでない場合は、作成して操作するvirtualenvのそれぞれに、常​​にruamel.yamlのようなパッケージをインストールする必要があります。そうすれば、パッケージをアップグレードして何かがうまくいかないと、同時にすべてのプログラムを破る機会が少なくなります。また、新しい仮想サーバのインストール速度であれば、devpiを参照してパッケージをローカルにキャッシュする必要があります。それぞれのvirtualenvにローカルなものがある場合は、(または他のパッケージ)を参照しているvirtualenvがまだある場合は、globalpacksディレクトリに自分自身を追跡しておく必要はありません。 (あなたが順番にglobalpacksがインストールPythonのsite-packagesを乱雑にしないことを使用する場合と、あなたはvirtualenvを使用して開始する必要があります)

+0

私は.pthファイルからエントリを削除したが、エラーがまだruamel.yaml輸入YAML'から '持続 \t 'ImportError:yamlという名前のモジュールはありません。 –

+0

その小さなフィードバックに基づいて、私はWindowsでこれをテストし、2.7のバージョンをインストールして、あなたが何をしたのかを推測するマシンを設定することはありません。あなたがvirtualenvを使用しているかどうか、私が行ったようにコマンドを実行しようとする気にかかっているかどうか、正確な出力が何であるかはわかりません。インストール後に 'globalpacks'ディレクトリに' ruamel.yaml - **。nspkg.pth'ファイルがあるのか​​どうかわかりません。なぜなら、なぜあなたはvirtualenvのサイトパッケージにパッケージをインストールしていないのですか?投稿を更新(編集)してください(**編集を使用しないでください**) – Anthon

関連する問題