简体   繁体   中英

No module named using sys.path.append

I'm trying import models from my Django project to another project. I found two solutions: first using os.environ['PYTHONPATH'] and second using sys.path.append(). My project structure:

-Project1(Django Project)
- mysite
- settings.py
- ...
- app1
- models.py
- ...

Project2(no Django Project)
- test
- dog.py

And in dog.py file:

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 . But app1 is located in Project1 , so Python can't find it.

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/ .

So, sys.path.append("/home/jack/workspace/Project1/mysite") isn't going to do you any good; you need `sys.path.append("/home/jack/workspace/Project1/")'.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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