我试图用
配置Djangopython manage.py shell
我收到错误:
Traceback (most recent call last):
File "manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "/usr/lib64/python2.7/site-packages/django/core/management/__init__.py", line 367, in execute_from_command_line
utility.execute()
File "/usr/lib64/python2.7/site-packages/django/core/management/__init__.py", line 341, in execute
django.setup()
File "/usr/lib64/python2.7/site-packages/django/__init__.py", line 27, in setup
apps.populate(settings.INSTALLED_APPS)
File "/usr/lib64/python2.7/site-packages/django/apps/registry.py", line 85, in populate
app_config = AppConfig.create(entry)
File "/usr/lib64/python2.7/site-packages/django/apps/config.py", line 123, in create
import_module(entry)
File "/usr/lib64/python2.7/importlib/__init__.py", line 37, in import_module
__import__(name)
ImportError: No module named django
我已经看到很多关于这个错误的问题,而且他们中的大多数似乎都集中在django的路径不包含在python的sys.path中这一事实。然而,我的是。我跑的时候
sudo pip install django
我得到了
Requirement already satisfied: django in /usr/lib64/python2.7/site-packages
我的sys.path的输出是
['', '/usr/lib64/python27.zip', '/usr/lib64/python2.7', '/usr/lib64/python2.7/plat-linux2', '/usr/lib64/python2.7/lib-tk', '/usr/lib64/python2.7/lib-old', '/usr/lib64/python2.7/lib-dynload', '/usr/lib64/python2.7/site-packages', '/usr/lib64/python2.7/site-packages/gtk-2.0', '/usr/lib/python2.7/site-packages']
所以这条路绝对存在。 我有什么选择?这是一个使用Pycharm SSH的远程解释器,它严重拖延了我的工作。
答案 0 :(得分:1)
如果which python
,当由普通用户运行时,返回~/bin/python
,那么这是一个与超级用户运行的Python不同的Python,根据你的说法,它是{{1 }}。 /bin/python
以超级用户身份运行,并在系统的Python环境中安装Django。之后,当你执行sudo pip install django
时,它运行另一个Python,而其他Python的环境显然没有安装Django。
如果你在没有python manage.py shell
的情况下运行pip install django
它可能会有效,但由于你拥有该机器的超级用户权限,最好摆脱普通用户所拥有的Python安装&# 39; s主目录,并确保您的系统只有一个Python安装,直到您真正知道自己在做什么。否则,你是否会使用virtualenv会感到困惑。
编辑:我不同意许多评论,告诉您使用virtualenv。没有它你就很困惑。让我们先解决问题。删除你创建的所有virtualenv(你通过删除目录来实现这一点)并忘记virtualenv的一切。注销并再次登录(这将确保停用virtualenvs)。不要修改你的sudo
,它本来就好了。使用manage.py
在系统范围内安装Django,然后尝试使用sudo pip install django
运行Django项目。只有在你开始工作并开始掌握系统之后才开始玩virtualenv。 Virtualenv很棒,但在当时的一切。 (virtualenv demystified是对我所写的virtualenv的介绍。)