Python 金字塔如何阻止项目模块名称的干扰

Python 金字塔如何阻止项目模块名称的干扰,python,python-3.x,pyramid,Python,Python 3.x,Pyramid,我正在使用金字塔框架构建一些项目,但是没有正确导入每个项目中的子模块。例如,给定的项目结构如下: project1\project1\... project1\auth\... project1\other_module\... project2\project2\... project2\auth\... project2\other_module\... 所以当我尝试导入 from auth.models import User 这将从project1而不是project2导入身份验证

我正在使用金字塔框架构建一些项目,但是没有正确导入每个项目中的子模块。例如,给定的项目结构如下:

project1\project1\...
project1\auth\...
project1\other_module\...

project2\project2\...
project2\auth\...
project2\other_module\...
所以当我尝试导入

from auth.models import User
这将从project1而不是project2导入身份验证

from project2.auth.models import auth
也不工作,找不到模块

要安装项目,我运行了以下命令

python setup.py develop
编辑

这是因为project1和project2位于python导入路径上。 所以它在project2之前找到project1。 我唯一的解决方案是为每个项目使用虚拟环境。 但是问题仍然存在,如果我想特别从其他项目导入,因为我应该能够在project1中这样做

from project2.auth.models import auth

听起来好像您从未在两个项目之间停止和启动服务器,假设您是在
project1
中启动的

您不能使用
python setup.py develope
来“启动”项目。这就是所谓的安装项目


要启动应用程序,请将
cd
放入
project2
,然后使用
yourpath/To/virtual/environment/bin/pserve development.ini运行金字塔应用程序。ini

我正确启动了开发服务器,一切都与导入路径OK有关。同样要澄清的是,在安装项目时,您是否总是忽略到virtualenv的路径?我假设您只是在使用速记,但更明确地说,您应该使用
$VENV/bin/python setup.py develope
,其中$VENV是一个设置为virtualenv路径的环境变量。另请参见Pyramid的文档