私のプロジェクトディレクトリ(仮想環境ディレクトリから1つ)にpipでインストールされたモジュールをインポートしようとすると、virtualenvに問題があります。VirtualEnv pythonのインポートはプロジェクトフォルダからは機能しません、virtualenvフォルダのみ
私のプロジェクト構造は;
\Project
..\dev (virtual env)
..test.py
私はそれを含めるようにしようとすると、しかし、私はインポートエラーを取得し、私の仮想環境のコンテキスト内でピップ使用セメントをインストールしました。
私のプロジェクトフォルダのルートからです。
Project$ source dev/bin/activate
(dev) Project$ pip list
cement (2.10.2)
pip (9.0.1)
setuptools (36.6.0)
wheel (0.30.0)
すべてがうまく見えます。仮想環境ディレクトリに
(dev) Project$ python
Python 2.7.10 (default, Feb 7 2017, 00:08:15)
[GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.34)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from cement.core.foundation import CementApp
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "cement.py", line 1, in <module>
from cement.core.foundation import CementApp
ImportError: No module named core.foundation
>>> quit()
だから私のCD。
(dev) Project$ cd dev/
(dev) dev$ python
Python 2.7.10 (default, Feb 7 2017, 00:08:15)
[GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.34)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from cement.core.foundation import CementApp
>>>
インポートはvirtualenvディレクトリ内で正常に動作します。
この動作は正しいですか? srcファイルをvirtualenvディレクトリに保存する必要はありますか?私の印象の下で、私のアプリはvirtualenvディレクトリの外側に住むことができたが、virtualenvの中にいったんインストールされたモジュールにアクセスするとアクティブになったのだろうか?
いいえ、これは正しい動作ではありません。 virtualenvをアクティブにすると、あなたのプロジェクトの外でも 'python'を任意のディレクトリから実行でき、' cement.core.foundation import CementApp' * should *は動作するはずです。virtualenvディレクトリ内にソースファイルを絶対に移動しないでください。あなたのvirtualenvディレクトリが何らかの形で壊れているのではないかと思います。私はそれを再作成することをお勧めしますが、これは非常に簡単です。 – janos
あなたの洞察をお寄せいただきありがとうございます。私は仮想環境を再現し、問題は解決しました。仮想環境は初めて正しく作成されてはいけません。再度、感謝します! – Jamie