簡體   English   中英

Django 找不到新模塊,使用 pyenv 和 virtualenv

[英]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 listpip freeze都顯示新模塊。 但是當我將模塊添加到我的 INSTALLED_APPS 並嘗試將其導入到我的 models.py 文件中時,Django 找不到它。

當我輸入which pythonwhich 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM