[英]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.