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

时间:2015-12-14 23:36:46

标签: python linux vagrant virtualenv

这是我第一次尝试设置流浪汉环境或python virtlenv,如果我遗漏了一些基本的东西,请原谅我。

现在,我进入我的流浪盒并在主目录中放置了我的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上遇到的类似问题。

基于这个问题:Can't import package from virtualenv我检查过我的sys.executable路径在我的python解释器中以及运行脚本时都是一样的(home / vagrant / venv / bin / python)< / p>

基于这个问题:Import error with virtualenv。我已直接运行〜/ venv / bin / python并尝试导入,但导入仍然失败。

如果我能提供更多信息,请告诉我。谢谢。

1 个答案:

答案 0 :(得分:0)

您有两种选择:

  1. 您可以通过编写setup.py文件并调用python setup.py install将项目安装到虚拟环境中。请参阅Python Packaging User Guide

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

    $ export PYTHONPATH=$PYTHONPATH:/vagrant/project