![](/img/trans.png)
[英]Python Virtualenv - No module named virtualenvwrapper.hook_loader
[英]/usr/bin/python3: Error while finding spec for 'virtualenvwrapper.hook_loader' (<class 'ImportError'>: No module named 'virtualenvwrapper')
我正在嘗試在 Ubuntu 14.04 上關注如何使用 uWSGI 和 Nginx 服務 Django 應用程序,由於 output 的數量,我在很早的階段就失敗了,我將所有相關信息放入Pastebin。com - #1 粘貼工具2002! .
實際錯誤:
root@alexus:~# echo "source /usr/local/bin/virtualenvwrapper.sh" >> ~/.bashrc
root@alexus:~# source ~/.bashrc
/usr/bin/python3: Error while finding spec for 'virtualenvwrapper.hook_loader' (<class 'ImportError'>: No module named 'virtualenvwrapper')
virtualenvwrapper.sh: There was a problem running the initialization hooks.
If Python could not import the module virtualenvwrapper.hook_loader,
check that virtualenvwrapper has been installed for
VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3 and that PATH is
set properly.
root@alexus:~#
我正在關注如何刷牙,我做錯了什么?
感謝@Alexander,我能夠通過更改~/.bashrc
的行來解決我的問題:
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
到
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python
由於向后兼容。
我遇到了類似的問題,當使用 python3 和 virtualenvwrapper 時,
sudo apt-get install python3-pip
然后從pip3安裝virtualenv和virtualenvwrapper,
sudo pip3 install virtualenv virtualenvwrapper
然后再次來源,
source $HOME/.bashrc
我遇到了一個與virtualenvwrapper
類似的問題,抱怨沒有找到virtualenvwrapper.hook_loader
。 我能夠在我的.bash_profile
縮小到這一行
源/usr/local/bin/virtualenvwrapper.sh
如下所示
$ source /usr/local/bin/virtualenvwrapper.sh
/usr/local/opt/python3/bin/python3.6: Error while finding module specification for 'virtualenvwrapper.hook_loader' (ModuleNotFoundError: No module named 'virtualenvwrapper')
virtualenvwrapper.sh: There was a problem running the initialization hooks.
If Python could not import the module virtualenvwrapper.hook_loader,
check that virtualenvwrapper has been installed for
VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3 and that PATH is
set properly.
經過一些試驗和錯誤,結果是重新安裝virtualenvwrapper
包解決了它。 這是我最近通過自制軟件升級 python3(從 3.5.2 版到 3.6.1 版)這一事實的證明,反過來它破壞了 virtualenvwrapper 的 shell 腳本,該腳本對舊版本的 python3 的引用進行了硬編碼(在我的情況下是 3.5。 2)。 簡而言之,下面這行應該修復它(至少在我的情況下是這樣)。
pip3 install virtualenvwrapper
我已經安裝了 virtualenv 所以只需要運行
pip3 install virtualenvwrapper
在 macOS Sierra 中,如果您使用pip3
安裝了virtualenv
包,請將以下內容添加到.bash_profile
export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3
或者
export VIRTUALENVWRAPPER_PYTHON=$(which python3)
之后,您使用workon myvenv
創建的每個新workon myvenv
使用python3
作為 python 解釋器
導出 VIRTUALENVWRAPPER_PYTHON=/usr/bin/python
不錯的選擇,但您已經知道 /usr/bin/python 是 2.7
如果您想使用版本 3
須藤 apt-get 安裝 python3-pip
並注銷和登錄
檢查你的python3
安裝目錄:
which python3
如果通過brew安裝,你應該得到:
/usr/local/python3
要使用 virtualenvwrapper 的導出 python 版本:
export VIRTUALENVWRAPPER_PYTHON=/usr/local/python3
獲取你的 shell 配置文件:
猛擊
source .bashrc
zsh
source .zshrc
就我而言,pip3 和 python3 之間存在某種不匹配(因為我安裝了多個 python)。 這對我有用:
sudo python -m pip install virtualenvwrapper
在 mac os high sierra 上運行brew update
和brew upgrade
后,我出現了這個錯誤。
該問題已通過重新安裝 virtualenvwrappper 解決,即pip install virtualenvwrapper
。
由於完全不同的原因,我遇到了這個錯誤,但自從我結束了這個線程,我認為有人可能會覺得這很有用。 因此,就我而言,事實證明我的腳本在我已經在虛擬環境中時試圖激活它( workon
語句是從我的.profile
文件中發出的)。 所以解決方案是簡單地先deactivate
環境,然后運行腳本。
如果您在 macOS 更新后來到這里,並通過 brew 安裝了 python3,請嘗試重新鏈接您的 python3 版本
brew link python@3.8
brew link python@3.9
在我的電腦上,我運行sudo apt install python-pip
然后pip install virtualenvwrapper
但在我的設置中,我將其設置如下:
export WORKON_HOME=$HOME/.Envs
export VIRTUALENVWRAPPER_PYTHON=$(which -a python3)
source $HOME/.local/bin/virtualenvwrapper.sh
這消除了錯誤並注意我使用的是 python3 並且我使用 pip3 作為我的默認值
這是我解決的問題
Error while finding module specification for 'virtualenvwrapper.hook_loader' (ModuleNotFoundError: No module named 'virtualenvwrapper')
在創造和激活環境中獲得。
在我的.bashrc
我寫道:
export VIRTUALENVWRAPPER_PYTHON=python3
將其更改為:
export VIRTUALENVWRAPPER_PYTHON=$(which python3)
為我解決了這個問題。
注意:如果激活環境並運行which python3
,您會發現 python run 是環境之一,而不是VIRTUALENVWRAPPER_PYTHON
指定的全局環境
我在 brew 升級后收到了這個警告,它更新了 python3 包和 brew 安裝的 python3。
我發現 pip3 和 python3 版本不匹配,正如 Evan Thomas 所暗示的:
❯ which python3 && python3 --version
/usr/bin/python3
Python 3.8.2
❯ which pip3 && pip3 --version
/usr/local/bin/pip3
pip 21.0.1 from /usr/local/lib/python3.9/site-packages/pip (python 3.9)
運行brew link python@3.9
作為snakesNbronies 建議刪除警告。
我發現使用或不使用 pyenv 都可以重現該問題。 這里列出了如何解決這個問題,這有助於我在 Mac 上全新安裝 brew 和 pyenv:
pyenv install 3.11.1
(或你需要的任何版本)並使用命令pyenv global 3.11.1
將其全局化python
並確保它與您在上一步中設置的版本相同。python -m pip install virtualenv virtualenvwrapper
which python
告訴您安裝路徑的 python 路徑。 使用此路徑由系統 python 可執行文件選擇,以告訴virtualenvwrapper
它需要使用變量VIRTUALENVWRAPPER_PYTHON
哪個 python 。command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
export PYENV_VERSION="$(pyenv version-name)"
VIRTUALENVWRAPPER_PYTHON="$HOME/.pyenv/shims/python"
export WORKON_HOME=$HOME/.virtualenvs
export PROJECT_HOME=$HOME/Devel
source ~/.pyenv/versions/$PYENV_VERSION/bin/virtualenvwrapper.sh
# Tell pyenv-virtualenvwrapper to use pyenv when creating new Python environments
export PYENV_VIRTUALENVWRAPPER_PREFER_PYVENV="true"
# Set the pyenv shims to initialize
if command -v pyenv 1>/dev/null 2>&1; then
eval "$(pyenv init -)"
fi
使用以下方法安裝vim
和macvim
后,我在 Mac OS Catalina 10.15.6 上遇到了類似的問題:
brew install vim && brew install macvim
我認為這是導致問題的原因。
雖然workon
工作但總是給出如下錯誤消息:
~ $ workon loom
/Library/Frameworks/Python.framework/Versions/3.6/bin/python3: Error while finding module specification for 'virtualenvwrapper.hook_loader' (ModuleNotFoundError: No module named 'virtualenvwrapper')
/Library/Frameworks/Python.framework/Versions/3.6/bin/python3: Error while finding module specification for 'virtualenvwrapper.hook_loader' (ModuleNotFoundError: No module named 'virtualenvwrapper')
(loom) ~ $
最終對我有用的是:
export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3
到.bash_profile
sudo pip3 install virtualenvwrapper
嘗試安裝 python-is-python3:
1.更新包索引:
sudo apt-get update
2.安裝python-is-python3 deb包:
sudo apt-get install python-is-python3
如果有人仍然遇到此問題,我按照此線程上的最佳答案修復了與我的 python 版本不匹配的 pip3,然后運行sudo pip3 install virtualenv virtualenvwrapper
后跟source ~/.bashrc
為我解決了這個問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.