重新安装 virtualenv 后虚拟环境未激活
virtual environment is not activating after re-installation of virtualenv
之前我的系统上安装了虚拟环境。我为我正在处理的两个不同项目创建了两个不同的 VirtualEnv。
我用来激活这些虚拟环境之一,然后开始处理项目。
最近我的系统损坏了,我在复制所有项目和虚拟环境后升级了 OS。我将项目文件和虚拟环境复制回我的系统并安装了虚拟环境。
在 .bashrc 中设置 PYTHONHOME='/usr/lib/python3'
现在,当我激活其中一个复制的环境并尝试 运行 python manage.py 运行 服务器时,出现以下错误
Could not find platform independent libraries <prefix>
Could not find platform dependent libraries <exec_prefix>
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
Fatal Python error: Py_Initialize: Unable to get the locale encoding
ImportError: No module named 'encodings'
Aborted (core dumped)
运行 这个虚拟环境中的 pip 抛出同样的错误。
请建议我需要什么,以便我的项目可以像以前一样工作。
python是否安装正确?
运行 python in cmd 并检查路径
如果某些依赖项损坏,请尝试重新正确安装
sudo apt-get install --reinstall python2.7
sudo apt-get update
现在尝试使用 virtualenv
pip install virtualenv <name>
or
pip install virtualenv .
按来源激活它。/bin/activate
虚拟环境使用一些符号链接回到源 python 安装以共享资源和二进制文件。我认为您是否应该能够将虚拟环境移动到 new/different 系统并使其开箱即用是非常值得怀疑的。
不建议移动虚拟环境,即移动到新系统或不同的 OS 安装 - A SO answer.
好的做法是生成需求列表(已安装 Python 包)——当虚拟环境处于活动状态时,执行:
$(venv) pip freeze > requirements_venv.txt
在新安装中(如果有,请删除复制的 venv),使用 Python 3 设置一个新的虚拟环境,激活它,然后安装 python 软件包:
$ virtualenv -p /usr/bin/python3 venv/
$ source env/bin/activate
$ pip install -r requirements_venv.txt
可能的问题:
Fatal Python error: Py_Initialize: Unable to get the locale encoding
ImportError: No module named 'encodings'
Aborted (core dumped)
状态,系统的 Python 3 正在尝试加载为其他 Python 版本编写的内容,即 Python 2.x.
您遇到错误的最可能原因可能是,
- 创建了具有不同 python 版本的虚拟环境。
- 不正确
PYTHONPATH
、
- 设置后不重启终端
PYTHONPATH
Solution/way-out:
首先检查您是否能够进入 Python shell 即在终端中执行 python
或 python3
命令。
如果不是,请取消设置 .bashrc
中的 PYTHONPATH
,并在终端中执行以下命令(或您系统上的任何确切路径):
# export PYTHONHOME=/usr/local/lib/python3.5/
# export PYTHONPATH=/usr/local/lib/python3.5
现在再次尝试启动 Python shell 即在终端中执行 python
或 python3
命令,您必须得到类似如下的内容:
Python 3.5.2 (default, Jul 17 2016, 00:00:00)
[GCC 4.8.4] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
在 Python shell 工作的情况下,很可能您可能不会遇到已发布的问题 - 如果遇到,请删除复制的虚拟环境并安装新的(如顶部所述)。
之前我的系统上安装了虚拟环境。我为我正在处理的两个不同项目创建了两个不同的 VirtualEnv。
我用来激活这些虚拟环境之一,然后开始处理项目。
最近我的系统损坏了,我在复制所有项目和虚拟环境后升级了 OS。我将项目文件和虚拟环境复制回我的系统并安装了虚拟环境。
在 .bashrc 中设置 PYTHONHOME='/usr/lib/python3'
现在,当我激活其中一个复制的环境并尝试 运行 python manage.py 运行 服务器时,出现以下错误
Could not find platform independent libraries <prefix>
Could not find platform dependent libraries <exec_prefix>
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
Fatal Python error: Py_Initialize: Unable to get the locale encoding
ImportError: No module named 'encodings'
Aborted (core dumped)
运行 这个虚拟环境中的 pip 抛出同样的错误。
请建议我需要什么,以便我的项目可以像以前一样工作。
python是否安装正确?
运行 python in cmd 并检查路径
如果某些依赖项损坏,请尝试重新正确安装
sudo apt-get install --reinstall python2.7
sudo apt-get update
现在尝试使用 virtualenv
pip install virtualenv <name>
or
pip install virtualenv .
按来源激活它。/bin/activate
虚拟环境使用一些符号链接回到源 python 安装以共享资源和二进制文件。我认为您是否应该能够将虚拟环境移动到 new/different 系统并使其开箱即用是非常值得怀疑的。
不建议移动虚拟环境,即移动到新系统或不同的 OS 安装 - A SO answer.
好的做法是生成需求列表(已安装 Python 包)——当虚拟环境处于活动状态时,执行:
$(venv) pip freeze > requirements_venv.txt
在新安装中(如果有,请删除复制的 venv),使用 Python 3 设置一个新的虚拟环境,激活它,然后安装 python 软件包:
$ virtualenv -p /usr/bin/python3 venv/
$ source env/bin/activate
$ pip install -r requirements_venv.txt
可能的问题:
Fatal Python error: Py_Initialize: Unable to get the locale encoding
ImportError: No module named 'encodings'
Aborted (core dumped)
状态,系统的 Python 3 正在尝试加载为其他 Python 版本编写的内容,即 Python 2.x.
您遇到错误的最可能原因可能是,
- 创建了具有不同 python 版本的虚拟环境。
- 不正确
PYTHONPATH
、 - 设置后不重启终端
PYTHONPATH
Solution/way-out:
首先检查您是否能够进入 Python shell 即在终端中执行 python
或 python3
命令。
如果不是,请取消设置 .bashrc
中的 PYTHONPATH
,并在终端中执行以下命令(或您系统上的任何确切路径):
# export PYTHONHOME=/usr/local/lib/python3.5/
# export PYTHONPATH=/usr/local/lib/python3.5
现在再次尝试启动 Python shell 即在终端中执行 python
或 python3
命令,您必须得到类似如下的内容:
Python 3.5.2 (default, Jul 17 2016, 00:00:00)
[GCC 4.8.4] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
在 Python shell 工作的情况下,很可能您可能不会遇到已发布的问题 - 如果遇到,请删除复制的虚拟环境并安装新的(如顶部所述)。