簡體   English   中英

/usr/bin/python3:查找“virtualenvwrapper.hook_loader”規范時出錯(<class 'importerror'> : 沒有名為“virtualenvwrapper”的模塊)</class>

[英]/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 updatebrew 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:

  1. pyenv install 3.11.1 (或你需要的任何版本)並使用命令pyenv global 3.11.1將其全局化
  2. 輸入python並確保它與您在上一步中設置的版本相同。
  3. 使用python -m pip install virtualenv virtualenvwrapper
  4. 首先重要! 正確設置第一個變量! which python告訴您安裝路徑的 python 路徑。 使用此路徑由系統 python 可執行文件選擇,以告訴virtualenvwrapper它需要使用變量VIRTUALENVWRAPPER_PYTHON哪個 python 。
  5. 第二重要。 確保執行正確的 virtualenvwrapper.sh。 我使用 pyenv,所以我只在我的全局版本中使用 virtualenvwrapper(在下面查找配置)
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

使用以下方法安裝vimmacvim后,我在 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)  ~ $ 

最終對我有用的是:

  1. export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3.bash_profile
  2. 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.

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