Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
django模块导入错误-python 2.7与python 3.4_Django_Python 2.7_Python 3.x_Django Models - Fatal编程技术网

django模块导入错误-python 2.7与python 3.4

django模块导入错误-python 2.7与python 3.4,django,python-2.7,python-3.x,django-models,Django,Python 2.7,Python 3.x,Django Models,我已经用Python2.7安装了django1.9。但是现在我想把它和python3.4一起使用。因此,我将python的符号链接修改为Python3.4,如下所示 sudo ln -s /usr/bin/python3.4 /usr/bin/python from django.conf.urls import url from Helpers import views urlpatterns = [ url(r'^$', views.index, name='index') ]

我已经用Python2.7安装了django1.9。但是现在我想把它和python3.4一起使用。因此,我将python的符号链接修改为Python3.4,如下所示

sudo ln -s /usr/bin/python3.4 /usr/bin/python
from django.conf.urls import url
from Helpers import views
urlpatterns = [
    url(r'^$', views.index, name='index')
]
因为同样的django也适用于Python2.7和3.4,所以它应该可以工作。但现在,如果我运行./mange.py runserver,我将得到以下错误但在Python 2.7中,相同的代码可以正常工作。

from Helpers import views
ImportError: No module named 'Helpers'
请告诉我有什么问题?以下是项目结构

myproject
   ├── myproject
   │   ├── settings.py
   │   ├── __init__.py
   │   ├── urls.py   
   │   ├── wsgi.py
   │   └─── Helpers
   │         ├── views.py
   │         └── __init__.py
   └── manage.py
url.py如下所示

sudo ln -s /usr/bin/python3.4 /usr/bin/python
from django.conf.urls import url
from Helpers import views
urlpatterns = [
    url(r'^$', views.index, name='index')
]
setting.py包含以下相关信息

    INSTALLED_APPS = [ 
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        'myproject',
    ]

    # Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

    # Look for modules here as well.
    sys.path.insert(0, os.path.join(BASE_DIR, "Helpers"))

有什么想法吗?

Python 3已经更改了导入策略。看一看

不要将
Helpers
目录添加到
sys.path
,而是添加它的父目录:

sys.path.insert(0, os.path.join(BASE_DIR, 'myproject'))
或者像提到的@albar一样-使用相对导入:

from .Helpers import views

os.path.join(BASE_DIR,“Helpers”)
通常会返回
myproject/Helpers
,而实际上您希望拥有
myproject/myproject/Helpers
os.path.join(BASE_DIR,‘myproject’,“Helpers”)也没有帮助。顺便说一句,如前所述,此代码可与python 2.7正常工作。顺便说一句,BASE_PATH正在设置.py父目录路径。您是否尝试过.Helpers导入视图中的