首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >虚拟环境在虚拟环境重新安装后没有激活。

虚拟环境在虚拟环境重新安装后没有激活。
EN

Stack Overflow用户
提问于 2017-01-12 08:36:44
回答 3查看 5K关注 0票数 1

以前,我在我的系统上安装了虚拟环境。我为我正在做的两个不同的项目创建了两个不同的VirtualEnv。

我经常激活这些虚拟环境中的一个,然后开始进行项目工作。

最近我的系统被破坏了,我在复制了所有的项目和虚拟环境后升级了操作系统。我将项目文件和虚拟环境复制回我的系统并安装了虚拟环境。

在.bashrc中设置PYTHONHOME=‘/usr/lib/python3 3’

现在,当我激活一个复制的环境并尝试运行python时,我得到了以下错误

代码语言:javascript
复制
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)

在这个虚拟env中运行pip会抛出相同的错误。

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-01-12 12:34:11

不建议将virual环境移动到新系统或不同的操作系统安装- A SO answer

良好做法是生成需求列表(已安装的Python包)--当虚拟环境处于活动状态时,执行:

代码语言:javascript
复制
$(venv)  pip freeze > requirements_venv.txt

在新安装上(如果有复制的venv,请删除它),使用Python 3安装一个新的虚拟环境,激活它,然后安装python包:

代码语言:javascript
复制
$ virtualenv -p /usr/bin/python3 venv/
$ source env/bin/activate
$ pip install -r requirements_venv.txt

可能发行的

代码语言:javascript
复制
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后不重新启动终端

Solution/way-out

首先,检查是否能够进入Python,即在终端中执行pythonpython3命令。如果没有,请在PYTHONPATH中取消.bashrc设置,并在终端中执行以下命令(或系统上的确切路径):

代码语言:javascript
复制
# export PYTHONHOME=/usr/local/lib/python3.5/
# export PYTHONPATH=/usr/local/lib/python3.5

现在再次尝试启动Python,即在终端中执行pythonpython3命令,您必须得到类似的内容:

代码语言:javascript
复制
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的工作,您很可能不会面对发布的问题--如果您这样做了,删除复制的虚拟环境并安装和新的环境(如上面所述)。

票数 2
EN

Stack Overflow用户

发布于 2017-01-12 08:40:44

python是否正确安装?

在cmd中运行python并检查路径

如果某些依赖项被破坏,请尝试正确地重新安装它。

代码语言:javascript
复制
sudo apt-get install --reinstall python2.7

sudo apt-get update

现在尝试使用虚拟环境

代码语言:javascript
复制
pip install virtualenv <name>
 or 
pip install virtualenv .

按源激活它。/bin/激活

票数 0
EN

Stack Overflow用户

发布于 2017-01-12 08:42:47

虚拟环境使用一些指向源python安装的符号链接来共享资源和二进制文件。我认为你是否能够将一个虚拟环境移动到一个新的/不同的系统中,并让它开箱即用,这是很值得怀疑的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41608432

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档