卸载旧的Django版本后,我已更新到最新的Django版本1.0.2。但是现在当我运行django-admin.py时出现以下错误。我该如何解决这个问题?
Traceback (most recent call last):
File "C:\Python25\Lib\site-packages\django\bin\django-admin.py", line 2, in <module>
from django.core import management
ImportError: No module named django.core
答案 0 :(得分:41)
我在Windows上遇到同样的问题,似乎我发现了问题。我安装了2.7和3.x.它似乎与.py:
的关联程序有关在命令行类型中:
assoc .py
结果是:
的.py = Python.File
表示.py与Python.File
相关联然后我试了一下:
ftype Python.File
我得到了:
Python.File =“C:\ Python32 \ python.exe”“%1”%*
这意味着命令行.py与我的Python 3.2安装相关 - 这就是为什么我不能只输入“django-admin.py blah blah”来使用django。
您需要做的就是更改关联:
ftype Python.File =“C:\ Python27 \ python.exe”“%1”%*
然后Everythong没关系!
答案 1 :(得分:36)
你必须确保django在你的PYTHONPATH中。
要测试,只需从python shell执行import django
。应该没有输出:
ActivePython 2.5.1.1 (ActiveState Software Inc.) based on
Python 2.5.1 (r251:54863, May 1 2007, 17:47:05) [MSC v.1310 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import django
>>>
如果您通过setuptools
(easy_install
或django附带的setup.py
安装了django,请检查site-packages
是否有.pth
文件(easy-install.pth
,django.pth
,...)指向正确的文件夹。
HIH。
答案 2 :(得分:22)
您可以通过提供django-admin.py文件的完整路径来解决此问题
python c:\python25\scripts\django-admin.py startproject mysite
答案 3 :(得分:16)
我今天遇到了这个问题,事实证明我的路径中有C:\ Python26,而.py文件与Python 3.1相关联。通过程序和功能或运行.msi修复适当版本的Python将修复关联。
答案 4 :(得分:11)
对于我来说,这是一个PYTHONPATH环境变量问题,正如上面提到的其他问题,但没有人真正展示过如何为可以使用额外指令的人设置它。
Linux(bash)
我在我的主文件夹中的bashrc文件中设置了这个变量(.bashrc是我的文件,因为我的shell是/ bin / bash)。
vim ~/.bashrc
export PYTHONPATH=/usr/local/python-2.7.2/lib/python2.7/site-packages:$PYTHONPATH
source ~/.bashrc
路径应该是你的django来源。我的位于/usr/local/python-2.7.2/lib/python2.7/site-packages/django,所以我刚刚指定了/usr/local/python-2.7.2/lib/python2.7/site-包没有django部分。
<强> OSX 强>
在OSX上,路径为/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages
,您可以将其添加到/etc/profile
:
sudo echo "PYTHONPATH=/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages:$PYTHONPATH" >> /etc/profile
source /etc/profile
答案 5 :(得分:9)
我确定这与我的设置中的错误有关,但我遇到了同样的问题,如果我这么称呼它就能正常工作
c:\somedir>python c:\Python26\scripts\django-admin.py startproject mysite
答案 6 :(得分:7)
如果您使用的是Windows,请不要使用'django-admin.py'运行,因为这会调用您的外部python.exe执行,它无法读入虚拟环境中的django。试试'python django-admin.py'在你的环境中使用你的python.exe。
答案 7 :(得分:5)
这对我有用bitnami djangostack:
python apps\django\django\bin\django-admin.py startproject mysite
答案 8 :(得分:2)
我在windows xp中遇到了同样的问题。原因是我安装了多个python版本(2.6,3.2).windows的PATH正确设置为python26,但.py文件与python32相关联。我希望.py文件与python26相关联。要解决它,最简单的方法是右键单击* .py(例如django-admin.py),选择“打开方式” - &gt;“选择程序... “ - &gt;”浏览...“(选择c:\ python26 \ python.ext) - &gt;”确定“。然后我们可以在cmd中运行django-admin.py,而不需要详细的前缀“c:\ python26 \ lib \ site-packages \ django \ bin”。
答案 9 :(得分:2)
我遇到了同样的问题并回忆起我前一天下午安装了iPython。我卸载了iPython,问题就消失了。顺便说一下,我正在使用virtualenv。我已经在系统范围的site-packages目录中安装了iPython,所以我只是在我正在使用的每个virtualenv中重新安装了iPython。昨天安装iPython后,我注意到一条警告信息(来自iPython的0.13版本),它发现我使用的是virtualenv,如果我遇到任何麻烦,我应该在每个virtualenv中安装iPyton。
答案 10 :(得分:1)
尽管不是最优雅的最简单的解决方案是从Scripts文件夹中复制django-admin.py。可以在Python安装下找到Scripts文件夹。在我的电脑上,它位于C:\ Python26 \ Scripts中。然后将django-admin.py粘贴到您尝试运行该文件的文件夹中。 确实,使用系统路径将提供灵活性。如果你赶时间,这是一个特别的解决方案。然后输入例如python django-admin.py startproject fluffyteaspoons,你将创建项目fluffyteaspoons
答案 11 :(得分:1)
在我的情况下,我使用的是OS X Lion,我使用homebrew安装了Python 我得到了同样的错误,但这里发布的解决方案都没有帮助我。在我的情况下,我只需编辑脚本:
vim /usr/local/share/python/django-admin.py
我注意到第一行错了,因为它指的是系统的python安装:
#!/usr/bin/python
我刚修改它以指向自制软件的安装:
#!/usr/local/bin/python
它有效:)
答案 12 :(得分:1)
我知道这是一个老问题,但我遇到了同样的问题, 在我的情况下,这是因为我使用virtualenv与django,但Windows中的.py文件扩展名与主要的Python安装相关联,因此直接从命令提示符运行django-admin.py会导致它与主要运行没有安装django的Python安装。
所以,既然我不知道Windows中是否有相同的哈希值,我通过运行python后跟django-admin.py的完整路径解决了这个问题,或者你也可以修改virtualenv批处理脚本来改变文件关联并在停用它时将其更改回来(虽然我不知道该怎么做,因为我对批处理脚本并不熟悉)。
希望这有帮助,
答案 13 :(得分:1)
如果你的路径变量是正确的,你可以从python shell执行:从django.core导入管理,确保你在“django-admin.py”之前包含“python”:python django-admin。 py startproject thelittlethings
答案 14 :(得分:1)
这发生在我身上,因为我将pip
作为sudo
运行,而我的virtualenv设置为不导入外部网站包,因此Django是为root用户安装的,但不是在virtualenv中安装,即使我有当我运行sudo时,virtualenv被激活了。
解决方案切换到root,激活venv然后执行pip install。
答案 15 :(得分:1)
这适用于Mac OS X
在终端运行python中 在python中: 导入系统 print sys.path
查找站点包路径。我在sys.path的输出中找到了这个: '/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages'
退出python。查找当前站点包的位置。我在/Library/Python/2.6/site-packages
现在要小心:检查site-packages的内容以确保它是空的。也就是说,目录/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages应为空,或者只包含自述文件。如果是,则删除该目录,因为您现在要创建符号链接。
ln -s /Library/Python/2.6/site-packages /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages
如果您不删除该文件夹,则会将符号链接放在该文件夹中。
其他选项是添加sys.path的路径。我选择了符号链接路由,因为我有几个版本的python,我不想要几个版本的Django,只是想指向已知的工作副本。
答案 16 :(得分:1)
我在安装了Python 2.7和3.2的Windows Vista中得到了相同的ImportError,并在Python 2.7和Django 1.4.3中使用了virualenv。
我将Explorer中的.py文件的文件关联从3.2更改为2.7。右键单击.py文件并更改设置。我仍然有ImportError。
我以管理员身份运行cmd.exe
,并对早期的ftype
内容进行了复制。发生错误后,请注意双引号无法从浏览器正确复制到cmd。在cmd中重写了命令,但我仍然遇到了ImportError。
在actived虚拟环境的root中,我从那里明确地给出了python
命令和django-admin.py的路径。
(env_p27) C:\Users\Gemmu\env_p27>python .\Scripts\django-admin.py startproject mysite
那很有效。
感谢所有人的帮助。
答案 17 :(得分:0)
像往常一样,安装脚本无法设置全局读/执行权限:) 这样做:
sudo find /usr/lib/python2.5/site-packages/django -type d -exec chmod go+rx {} \;
sudo find /usr/lib/python2.5/site-packages/django -type f -exec chmod go+r {} \;
答案 18 :(得分:0)
经过阅读后,我发现了一个适合我的解决方案。
我有
django version 1.9.2
答案 19 :(得分:0)
To tack on to what lichenbo said... If you are using Windows, then Don't run with 'django-admin.py'...
I'm running inside a virtual environment, so the path and command to create a new project looks like:
(DjangoEnv) C:\users\timreilly\Envs\django\Scripts\django-admin.exe startproject myproject
DjangoEnv is the name of my virtual environment.
答案 20 :(得分:0)
我意识到这发生了,因为我没有python setup.py install
。这设置了环境。
答案 21 :(得分:0)
Variables/PATH this: ;C:\Python26\Scripts;C:\Python26.
删除
它的工作......
我以前遇到过你的问题。
答案 22 :(得分:0)
我遇到了同样的问题,很明显我遇到了PYTHONPATH
配置问题。解决方案非常简单,只需在django.pth
目录中创建一个名为PYTHONHOME\Lib\site-packages
的文件,其中PYTHONHOME
是安装Python的目录(我的是:C:\ Python27)。将以下行添加到django.pth
文件中:
PYTHONHOME\Lib\site-packages\django
当然,正如我所解释的那样,您必须将PYTHONHOME
更改为Python的安装目录。
请注意,您可以编辑django.pth
以包含要包含在PYTHONPATH
中的任何目录。实际上,您可以根据需要命名该文件,path.pth
例如,如果您希望它更通用并包含多个目录路径。
答案 23 :(得分:0)
小快速修复就是创建符号链接ln -s $SOMEWHERE/lib/python2.6/site-packages/django/ ./django
答案 24 :(得分:0)
感谢您发布问题和答案。我安装了两个版本的Python,但root指向/ usr / bin版本,我想在/ usr / local / bin中使用2.7版本的Python。在重建/重新安装Django和mysqldb后,一切都很好,我没有收到错误。