gpt4 book ai didi

django - 错误 : Could not import settings 'mysite.settings' after setting up virtualenv for Django

转载 作者:行者123 更新时间:2023-12-04 17:56:02 32 4
gpt4 key购买 nike

我在 Fedora 上做这个

问题:

(sandbox)[root@localhost mysite]# django-admin.py runserver
Error: Could not import settings 'mysite.settings' (Is it on sys.path?): No module named mysite.settings

设置 virtualenv
mkdir pythonenv           # that's the /home/yeukhon/pythonenv/*.*
cd pythonenv
virtualenv --no-site-packages --distribute sandbox

安装 Django
pip install -E sandbox django

# changing mode of /home/yeukhon/pythonenv/sandbox/bin/django-admin.py to 755
# Successfully installed django

在/home/yeukhon/pythonenv/sandbox 下
bin   include  lib  mysite

在lib下
You have /lib/python2.7/site-packages/django/*.*

创建项目没问题
(sandbox)[root@localhost sandbox]# django-admin.py startproject mysite
# the path is now /home/yeukhon/pythonenv/sandbox/mysite/*.*

无法运行服务器
django-admin.py runserver
Error: Could not import settings 'mysite.settings' (Is it on sys.path?): No module named mysite.settings

沙箱下的 Python Shell
(遵循本指南: How to troubleshoot - ImportError: Could not import settings 'mysite.settings' when deploying django?)
(sandbox)[root@localhost mysite]# python
Python 2.7.2 (default, Oct 27 2011, 01:36:46)
[GCC 4.6.1 20111003 (Red Hat 4.6.1-10)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import django
>>> import os
>>> os.environ['DJANGO_SETTINGS_MODULE']
'mysite.settings'

>>> os.path.exists('/home')
True
>>> os.path.exists('/home/yeukhon/pythonenv/sandbox/mysite')
True
>>> os.path.exists('/home/yeukhon/pythonenv/sandbox/mysite/settings.py')
True
>>> from django.core.management import setup_environ
>>> import mysite.settings
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named mysite.settings

>>> setup_environ(mysite.settings)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'mysite' is not defined


>>> print sys.path
['',
/home/yeukhon/pythonenv/sandbox/lib/python2.7/site-packages/distribute-0.6.14-py2.7.egg',
'/home/yeukhon/pythonenv/sandbox/lib/python2.7/site-packages/pip-0.8.1-py2.7.egg',
'/home/yeukhon/pythonenv/sandbox/lib/python27.zip',
'/home/yeukhon/pythonenv/sandbox/lib/python2.7',
'/home/yeukhon/pythonenv/sandbox/lib/python2.7/plat-linux2',
'/home/yeukhon/pythonenv/sandbox/lib/python2.7/lib-tk',
'/home/yeukhon/pythonenv/sandbox/lib/python2.7/lib-old',
'/home/yeukhon/pythonenv/sandbox/lib/python2.7/lib-dynload',
'/usr/lib/python2.7',
'/usr/lib/python2.7/plat-linux2',
'/home/yeukhon/pythonenv/sandbox/lib/python2.7/site-packages'

我需要做什么来纠正这个问题?感谢您的时间。

编辑

感谢您的回复。

我尝试了以下方法:
(sandbox)[root@localhost mysite]# export PYTHONPATH="/home/yeukhon/pythonenv/sandbox/"
(sandbox)[root@localhost mysite]# export PYTHONPATH="/home/yeukhon/pythonenv/"
(sandbox)[root@localhost mysite]# deactivate
[root@localhost mysite]# source ../bin/activate
(sandbox)[root@localhost mysite]# django-admin.py runserver
Error: Could not import settings 'mysite.settings' (Is it on sys.path?): No module named mysite.settings

>>> sys.path
['',.... '/home/yeukhon/pythonenv'.....]

它现在在python路径上。但是我仍然无法运行服务器。

集中 Django 项目

是的。这是一个很好的建议。
所以我想我需要做的就是“创建一个名为 mydjango 的目录,然后在 mydjango 中创建项目”。但是需要更改/添加哪些命令?我愿意学习好的做法。

非常感谢。

解决方案(添加到环境变量)
PYTHONPATH=$PYTHONPATH:path-to-your-directory

# PYTHONPATH=$PYTHONPATH:/home/yeukhon/pythonenv/sandbox/

最佳答案

最后一行告诉你所有你需要知道的。为了导入mysite.settings , mysite的父目录必须在你的 PYTHONPATH 上。目前不是。

FWIW,将项目实际存储在 virtualenv 目录中并不常见。通常,您将所有项目放在 PYTHONPATH 上的目录中。然后,只需加载您需要的任何 virtualenv,一切都很好。事实上,virtualenv 最好的部分是它们是可以互换的;即,您可以轻松地在多个不同的 virtualenv 环境中运行同一个项目(例如在不改变正常 virtualenv 的情况下测试新版本的 Django),但同样,您希望您的项目在一个集中的地方,而不是在特定的 virtualenv 目录中.

关于django - 错误 : Could not import settings 'mysite.settings' after setting up virtualenv for Django,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8673210/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com