프로젝트 디렉토리 (virtual env 디렉토리에서 하나)에 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()
그래서 가상 환경 디렉토리로 이동합니다.
(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'을 실행할 수 있어야하고'from cement.core.foundation import CementApp' *가 작동해야합니다.virtualenv 디렉토리 내에서 소스 파일을 절대 옮기지 않아야합니다. virtualenv 디렉토리가 어떻게 든 부숴 질지 궁금합니다. 나는 그것을 재현하는 것이 좋습니다. 이것은 매우 쉬워야합니다. – janos
통찰력을 얻은 주셔서 감사합니다. @janos, 가상 환경을 다시 만들었고 문제가 해결되었습니다. 가상 환경이 처음 올바르게 생성되지 않아야합니다. 다시 한 번 감사드립니다! – Jamie