无法在 Vagrant 中使用 Virtualenv 导入模块
Cannot import modules using Virtualenv in Vagrant
这是我第一次尝试建立一个 vagrant 环境或 python virtuelenv,所以如果我遗漏了一些基本的东西,请原谅我。
现在,我通过 ssh 进入我的 vagrant box,并在主目录中放置了我的 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
很好用。
我已经阅读了人们在 Whosebug 上遇到的类似问题。
基于这个问题:Can't import package from virtualenv 我已经检查了我的 sys.executable 路径在我的 python 解释器和我的 运行 脚本中是相同的(home/vagrant/venv/bin/python)
基于这个问题:Import error with virtualenv。我直接运行~/venv/bin/python尝试导入,导入还是失败。
如果我可以提供更多信息,请告诉我。谢谢。
您有两个选择:
您可以通过编写 setup.py 文件并调用 python setup.py install
将您的项目安装到虚拟环境中。参见 Python Packaging User Guide.
您可以将 PYTHONPATH
环境变量设置为指向您的项目,如下所示:
$ export PYTHONPATH=$PYTHONPATH:/vagrant/project
这是我第一次尝试建立一个 vagrant 环境或 python virtuelenv,所以如果我遗漏了一些基本的东西,请原谅我。
现在,我通过 ssh 进入我的 vagrant box,并在主目录中放置了我的 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
很好用。
我已经阅读了人们在 Whosebug 上遇到的类似问题。
基于这个问题:Can't import package from virtualenv 我已经检查了我的 sys.executable 路径在我的 python 解释器和我的 运行 脚本中是相同的(home/vagrant/venv/bin/python)
基于这个问题:Import error with virtualenv。我直接运行~/venv/bin/python尝试导入,导入还是失败。
如果我可以提供更多信息,请告诉我。谢谢。
您有两个选择:
您可以通过编写 setup.py 文件并调用
python setup.py install
将您的项目安装到虚拟环境中。参见 Python Packaging User Guide.您可以将
PYTHONPATH
环境变量设置为指向您的项目,如下所示:$ export PYTHONPATH=$PYTHONPATH:/vagrant/project