简体   繁体   English

没有使用sys.path.append命名的模块

[英]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/ . 从您的图形来看, app1mysite的同级对象—也就是说,它在/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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM