以前我的系统上安装了虚拟环境。我为我正在研究的两个不同的项目创建了两个不同的VirtualEnv 我用它来激活其中一个虚拟环境并开始处理项目 最近我的系统损坏了,我在复制所有项目和虚拟环境后升级了操作系统。我将项目文件和虚拟环境复制回我的系统并安装了虚拟环境。
设置PYTHONHOME =' / usr / lib / python3'在.bashrc中
现在,当我激活其中一个复制环境并尝试运行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)
在此虚拟环境中运行pip会引发相同的错误。
请建议我需要的东西,以便我的项目能像以前一样工作。
答案 0 :(得分:1)
不建议移动虚拟环境,即移动到新系统或不同的操作系统安装 - 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 。
您获得错误的最可能原因可能是
PYTHONPATH
,PYTHONPATH
<强>解决方案/方法-退出:
首先检查您是否能够进入Python shell,即在终端中执行python
或python3
命令。
如果没有,请取消设置PYTHONPATH
中的.bashrc
,并在终端中执行以下命令(或系统上的确切路径):
# 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工作的情况下,很可能您可能不会遇到已发布的问题 - 如果您这样做,请删除复制的虚拟环境并安装新的环境(如上所述)。
答案 1 :(得分:0)
是否正确安装了python?
在cmd中运行python并检查路径
如果某些依赖项被破坏,请尝试正确重新安装
sudo apt-get install --reinstall python2.7
sudo apt-get update
现在尝试使用virtualenv
pip install virtualenv <name>
or
pip install virtualenv .
按源./bin/activate
激活它答案 2 :(得分:0)
虚拟环境使用一些符号链接返回源python安装,以便共享资源和二进制文件。我认为您应该能够将虚拟环境移动到新的/不同的系统并使其开箱即用,这是非常值得怀疑的。