Python 重新安装virtualenv后,虚拟环境未激活

Python 重新安装virtualenv后,虚拟环境未激活,python,virtualenv,Python,Virtualenv,以前,我的系统上安装了虚拟环境。我为两个不同的项目创建了两个不同的VirtualEnv。 我使用来激活其中一个虚拟环境,并将开始项目工作。 最近我的系统被破坏了,我在复制了所有项目和虚拟环境后升级了操作系统。我将项目文件和虚拟环境复制回我的系统并安装了虚拟环境 在.bashrc中设置PYTHONHOME='/usr/lib/python3' 现在,当我激活一个复制的环境并尝试运行python manage.py runserver时,我发现了以下错误 Could not find platfor

以前,我的系统上安装了虚拟环境。我为两个不同的项目创建了两个不同的VirtualEnv。
我使用来激活其中一个虚拟环境,并将开始项目工作。
最近我的系统被破坏了,我在复制了所有项目和虚拟环境后升级了操作系统。我将项目文件和虚拟环境复制回我的系统并安装了虚拟环境

在.bashrc中设置PYTHONHOME='/usr/lib/python3'

现在,当我激活一个复制的环境并尝试运行python manage.py runserver时,我发现了以下错误

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)
找不到与平台无关的库
找不到与平台相关的库
考虑将$PythONHOLD设置为[:]
致命的Python错误:Py_初始化:无法获取区域设置编码
ImportError:没有名为“encodings”的模块
中止(堆芯转储)
在此虚拟环境中运行pip会引发相同的错误


请建议我需要什么,以便我的项目可以像以前一样工作。

python安装正确吗

在cmd中运行python并检查路径

如果某些依赖项已损坏,请尝试正确重新安装

sudo apt-get install --reinstall python2.7

sudo apt-get update
现在,请尝试通过以下方式使用virtualenv

pip install virtualenv <name>
 or 
pip install virtualenv .
pip安装virtualenv
或
pip安装virtualenv。

按源激活它。/bin/activate

虚拟环境使用一些返回到源python安装的符号链接,以便共享资源和二进制文件。我认为,您是否能够将虚拟环境移动到一个新的/不同的系统并使其开箱即用,这是非常值得怀疑的。

不建议将虚拟环境移动到一个新的系统或不同的操作系统安装-

好的做法是生成需求列表(已安装的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)
表示,系统的Python3正在尝试加载为其他Python版本(如Python2.x)编写的内容

最可能的错误原因是

  • 使用不同的python版本创建虚拟环境
  • 不正确的
    PYTHONPATH
  • 设置
    PYTHONPATH

解决方案/出路

Fatal Python error: Py_Initialize: Unable to get the locale encoding
ImportError: No module named 'encodings'
Aborted (core dumped)
首先检查您是否能够进入Python shell,即在终端中执行
Python
python3
命令。 如果没有,请在
.bashrc
中取消设置
PYTHONPATH
,并在终端中执行以下命令(或系统上的任何确切路径):

现在再次尝试启动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,我无法重用以前的虚拟环境?@User42该环境中是否存在任何核心依赖项?如果它们是普通软件包,请尝试将它们安装到这个新的virtualenv中。@User42看到这个和这个了吗