无法在Vagrant中使用Virtualenv导入模块

这是我第一次尝试build立一个stream浪环境或python,所以如果我缺less一些基本的东西,请原谅我。

现在,我进入我的stream浪盒子,并在主目录中放置了我的venv文件夹。 我跑了

source venv/bin/activate 

从我的家目录我搬到/ vagrant,在这里我有我的项目文件布局如下所示:

 ├──project ├── LICENSE │ ├── project │  │  ├── exceptions.py │  │  ├── __init__.py │  │  ├── resources │  │  │  ├── base.py │  │  │  ├── __init__.py │  │  └── target │  │  └── __init__.py │  │  └── test.py │  ├── README.md 

我的问题是我无法导入我的模块在不同的目录。 例如,如果我在/vagrant/project/project/target/test.py中,并尝试:

 import project.exceptions 

我会得到这个错误

 ImportError: No module named project.exceptions 

如果我在/ vagrant / project / project目录下,然后运行

 import exceptions 

工作正常。

我已经阅读了人们在StackOverflow上遇到的类似问题。

基于这个问题: 不能从virtualenv导入包我已经检查了我的sys.executablepath在我的python解释器以及当我运行一个脚本(home / vagrant / venv / bin / python)

基于这个问题: 用virtualenv导入错误 。 我已经直接运行〜/ venv / bin / python并试图导入,但导入仍然失败。

如果有更多的信息可以提供,请告诉我。 谢谢。

你有两个选择:

  1. 您可以通过编写setup.py文件并调用python setup.py install来将您的项目安装到虚拟环境中。 请参阅Python打包用户指南 。

  2. 您可以将PYTHONPATH环境变量设置为指向您的项目,如下所示:

     $ export PYTHONPATH=$PYTHONPATH:/vagrant/project