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

4
这是我第一次尝试设置Vagrant环境或Python虚拟环境,如果我漏掉了一些基础知识,请谅解。
目前,我通过SSH登录到我的Vagrant盒子,在主目录中放置了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.executable路径,在我的python解释器和运行脚本时是相同的(home/vagrant/venv/bin/python)。

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

如果需要更多信息,请告诉我。谢谢。

1个回答

0

你有两个选择:

1. 你可以通过编写一个 setup.py 文件,并调用 python setup.py install 的方式,将你的项目安装到虚拟环境中。请参考 Python 打包用户指南
2. 你还可以设置 PYTHONPATH 环境变量,将其指向你的项目,就像这样:
$ export PYTHONPATH=$PYTHONPATH:/vagrant/project

这个可行!我尝试了第二个选项,现在一切都正常工作了。非常感谢您的帮助! - roach

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接