[英]Django cannot find new modules, using pyenv and virtualenv
我敢肯定,这对于有经验的人来说非常简单。 我正在通过 Django 电子书的 Wedge 学习 Django。
我正在使用通过 pyenv 安装的 Python 3.8.7,如下所示: pyenv install 3.8.7
然后我像这样设置了一个virtualenv: pyenv virtualenv 3.8.7 everycheese
我像这样在我的仓库中激活 virtualenv: pyenv local everycheese
环境在提示中显示为活动的,因为它以 (everycheese) 开头。
主项目克隆自Django Cookiecutter https://github.com/cookiecutter/cookiecutter-django
然后我使用 pip 从 requirements.txt 文件中安装要求。
但是 - 当我尝试添加新软件包时遇到麻烦(通过将 package 作为新行添加到 requirements.txt 并使用 pip 再次安装)。
pip list
或pip freeze
都显示新模块。 但是当我将模块添加到我的 INSTALLED_APPS 并尝试将其导入到我的 models.py 文件中时,Django 找不到它。
当我输入which python
和which pip
时,它们指向不同的目录,我认为这可能是问题的一部分,但我被卡住了。
使用pip
(或实际上任何其他 Python 脚本)时,确保使用哪个 Python 解释器非常重要。 通常在调用pip
时使用哪个 Python 解释器是显而易见的。 但有时并不清楚,脚本实际上是使用人们可能认为的不同解释器运行的。 这会导致意想不到的结果和很多混乱。
因此,最好明确调用您所针对的确切 Python 解释器并告诉它运行pip的可执行模块(或任何其他可执行模块)。 通常:
$ python -m pip install Something
$ # instead of 'pip install Something'
$ python3 -m pip install Something
$ # instead of 'pip3 install Something'
如果仍有疑问,甚至可以进一步使用 go 并使用更明确的 Python 解释器路径:
/the/path/to/my/pythonX.Y -m pip
path/to/my/pythonX.Y -m pip
path/to/my/python -m pip
path/to/venv/bin/python -m pip
pythonX.Y -m pip
python3 -m pip
python -m pip
资源:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.