[英]No module named using sys.path.append
I'm trying import models from my Django project to another project. 我正在尝试将模型从Django项目导入到另一个项目。 I found two solutions: first using os.environ['PYTHONPATH'] and second using sys.path.append().
我发现了两个解决方案:第一个使用os.environ ['PYTHONPATH'],第二个使用sys.path.append()。 My project structure:
我的项目结构:
-Project1(Django Project) -Project1(Django项目)
- mysite - 我的网站
- settings.py -settings.py
- ... -...
- app1 -app1
- models.py -models.py
- ... -...
Project2(no Django Project) Project2(没有Django项目)
- test -测试
- dog.py -dog.py
And in dog.py file: 并在dog.py文件中:
import sys
import os
sys.path.append("/home/jack/workspace/Project1/mysite")
os.environ['DJANGO_SETTINGS_MODULE'] ="mysite.settings"
from app1 import models
But console show me: 但是控制台向我展示:
from app1 import models
ImportError: No module named app1
You seem to be adding path to mysite
package, not Project1
. 您似乎要添加路径到
mysite
包,而不是Project1
。 But app1
is located in Project1
, so Python can't find it. 但是
app1
位于Project1
,因此Python找不到它。
Try this: 尝试这个:
sys.path.append("/home/jack/workspace/Project1")
From your drawing, app1
is a sibling to mysite
—that is, it's in /home/jack/workspace/Project1/app1/
, not /home/jack/workspace/Project1/mysite/app1/
. 从您的图形来看,
app1
是mysite
的同级对象—也就是说,它在/home/jack/workspace/Project1/app1/
,而不是在/home/jack/workspace/Project1/mysite/app1/
。
So, sys.path.append("/home/jack/workspace/Project1/mysite")
isn't going to do you any good; 因此,
sys.path.append("/home/jack/workspace/Project1/mysite")
不会对您有任何帮助; you need `sys.path.append("/home/jack/workspace/Project1/")'. 您需要`sys.path.append(“ / home / jack / workspace / Project1 /”)'。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.