我在Django 3项目中使用Python 3.9.9。我想通过“python3 www.example.com shell”调用我的Python shellmanage.py,所以我设置了这些变量。
$ echo $PYTHONSTARTUP
/home/myuser/cbapp/shell_startup.py
$ echo $PYTHONPATH/myuser
/home/myuser/cbapp/
我的启动脚本非常简单。
$ cat /home/myuser/cbapp/shell_startup.py
from cbapp.services import *
from cbapp.models import *
然而,当我切换到我的项目目录,激活我的虚拟环境,并试图调用shell时,我得到了这些错误,抱怨无法找到Django。
$ cd /home/myuser/cbapp
$ ./venv/bin/activate
$ python3 manage.py shell
Traceback (most recent call last):
File "/home/myuser/cbapp/manage.py", line 10, in main
from django.core.management import execute_from_command_line
ModuleNotFoundError: No module named 'django'
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/myuser/cbapp/manage.py", line 21, in <module>
main()
File "/home/myuser/cbapp/manage.py", line 12, in main
raise ImportError(
ImportError: Couldn't import Django. Are you sure it's installed and available on your PYTHONPATH environment variable? Did you forget to activate a virtual environment?
但是,Django已经安装在我的虚拟环境中了。
$ ls /home/myuser/cbapp/venv/lib/python3.9/site-packages/django/
apps conf core dispatch http __main__.py __pycache__ template test utils
bin contrib db forms __init__.py middleware shortcuts.py templatetags urls views
我还需要做什么才能成功启动shell?
4条答案
按热度按时间643ylb081#
我认为你可以尝试在你的虚拟环境中重新安装Django,就像这样。
如果你仍然遇到同样的错误,你必须在运行Python shell之前激活你的虚拟环境,所以首先运行这个:
检查
PYTHONPATH
环境变量是否设置正确。如果输出是空的,你可以像这样手动设置它:
好了,再测试一遍:
vs3odd8k2#
看起来你的
venv
工作不正常,建议删除它们并重新创建虚拟环境virtualenv venv --python3={your desired interpreter}
source activate venv/bin/acitvate
后安装软件包pip list | grep Django
再次确认Django安装。如果找不到,请重新安装。manage.py
有时,如果manage.py
顶部的shebang#!/usr/bin/env python3
指向全局Python而不是虚拟环境,则可能会导致问题。您可以删除shebang或确保虚拟环境在运行脚本时始终处于活动状态。flmtquvp3#
./venv/bin/activate
-这将在子shell中执行venv虚拟环境,而不是在当前shell中。documentation建议:
并确保您的
PYTHONPATH
包含Django安装的目录。如果Django安装在虚拟环境中,那么PYTHONPATH
应该包含虚拟环境的site-packages目录的路径。但是,如果您已正确激活虚拟环境,则通常不需要设置PYTHONPATH
。一旦你的虚拟环境被激活,你应该能够从你的Django项目的根目录(在你的例子中是
/home/myuser/cbapp/
)使用以下命令运行Django shell:在虚拟环境中验证Django安装:
python3 -m django --version
。如果Django安装正确,此命令将返回Django的安装版本。确保
DJANGO_SETTINGS_MODULE
环境变量设置正确。这个变量应该指向你的设置文件,通常格式为myproject.settings
。您可以在shell中设置此变量,或将其添加到shell_startup.py
文件中:c7rzv4ha4#
这里有一些步骤,我认为。
1.你需要安装python.exe,但在那个时候,你应该检查'checkBox'按钮,因为如果你不这样做,你需要设置env变量。但如果你检查一下,它会自动设置。
1.你需要在你的Django项目中安装venv文件,因为你需要在这个venv文件中安装所有的包。
1.之后,你需要进入虚拟环境来安装和运行项目。你可以运行这个命令'venv\scripts\activate.bat
这是我的拙见。谢谢.