Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >创建Python3虚拟环境失败问题跟进

创建Python3虚拟环境失败问题跟进

作者头像
drunkdream
发布于 2020-01-02 07:54:23
发布于 2020-01-02 07:54:23
2.2K00
代码可运行
举报
文章被收录于专栏:醉梦轩醉梦轩
运行总次数:0
代码可运行

0x00 问题描述

今天在Win10上遇到一个很诡异的问题,使用python3的virtualenv创建虚拟环境失败,报错如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Using base prefix 'c:\\users\\xxx\\appdata\\local\\programs\\python\\python37'
New python executable in D:\env\Scripts\python3.exe
Also creating executable in D:\env\Scripts\python.exe
ERROR: The executable D:\env\Scripts\python3.exe is not functioning
ERROR: It thinks sys.prefix is 'd:\\' (should be 'd:\\env')
ERROR: virtualenv is not compatible with this system or executable
Note: some Windows users have reported this error when they installed Python for "Only this user" or have multiple versions of Python installed. Copying the appropriate PythonXX.dll to the virtualenv Scripts/ directory may fix this problem.

同时还会有如下弹窗:

定位原因

根据错误信息在网上寻找解决方法,有说是pythonxx.dll有问题,还有说是权限问题,但试了下都没法解决这个问题。因此,只能尝试在本地寻找复现规律。

发现将python3.exe复制到其它路径后都无法运行,报错与创建虚拟环境一致;而在另一台Win10机器上却没有这个问题。所以,看来原因应该是python环境有问题,但为什么默认路径运行却是正常的呢?

一开始以为是python37.dll的问题,但是很快又排除了。此时,发现python3安装目录下有个vcruntime140.dll文件,而这个文件是不会被复制到虚拟环境中的,难道是这个dll的问题?

将这个dll拷贝到虚拟环境目录后,果然python可以正常运行了。

因此确定,就是vcruntime140.dll这个文件的锅了。

终极解决方案

但是其它Win10上没有拷贝这个dll,也是正常的啊。所以,还需要进一步寻找原因。

接着,将正常电脑上python安装目录里的vcruntime140.dll文件删掉,运行python,也是正常的。使用procexp查看加载的dll,发现原来python会从C:\Windows\system32目录下加载该dll。

在有问题的电脑上看了下该目录,文件也是存在的啊,那是怎么回事呢?

右键查看文件属性,终于发现了根本原因,原来文件的权限设置有问题,估计这个dll是在入域前装上去的,导致只能在管理员权限下访问。

修改文件权限后,一切都正常了。

总结

根据程序的报错信息不一定能正确地找到解决问题的方法,有时还是需要进一步跟踪调试,才能找到问题的真正原因。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-04-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Python3创建虚拟环境
        Python 应用程序经常会使用一些不属于标准库的包和模块。应用程序有时候需要某个特定版本的库,因为它需要一个特定的 bug 已得到修复的库或者它是使用了一个过时版本的库的接口编写的。         这就意味着可能无法安装一个 Python 来满足每个应用程序的要求。如果应用程序 A 需要一个特定模块的 1.0 版本但是应用程序 B 需要该模块的 2.0 版本,这两个应用程序的要求是冲突的,安装版本 1.0 或者版本 2.0 将会导致其中一个应用程序不能运行。       这个问题的解决方案就是创建一个 虚拟环境 (通常简称为 “virtualenv”),包含一个特定版本的 Python,以及一些附加的包的独立的目录树。        不同的应用程序可以使用不同的虚拟环境。为了解决前面例子中的冲突,应用程序 A 可以有自己的虚拟环境,其中安装了特定模块的 1.0 版本。而应用程序 B 拥有另外一个安装了特定模块 2.0 版本的虚拟环境。如果应用程序 B 需求一个库升级到 3.0 的话,这也不会影响到应用程序 A 的环境。
py3study
2020/01/10
9270
Python虚拟环境:Windows10
virtualenvwrapper 是virtualenv的扩展管理包,可以将所有的虚拟环境整合在一个目录下。
新码农
2020/03/27
6440
python安装虚拟环境步骤_python虚拟环境迁移
http://blog.csdn.net/pipisorry/article/details/47008981
全栈程序员站长
2022/09/27
8.2K0
python安装虚拟环境步骤_python虚拟环境迁移
python笔记41-虚拟环境virtualenv
如果你是一个python初学者,我是不建议你搞python虚拟环境的,我看到很多python的初学者同学,使用最新版的pycharm,新建一个工程时候默认就是venu虚拟环境。 然后在使用cmd里面pip安装第三方包的时候,在工程里面死活导入不成功,搞的开始怀疑人生。(你给他讲这是虚拟环境venu,他会一脸懵逼!)
上海-悠悠
2019/09/02
1.2K0
centos7部署python3虚拟环境
1)为所有用用户设置共享库目目录 #cd /usr/local/src/Python-3.6.5/ #cp libpython3.6m.so.1.0 /usr/local/lib64/ #cp libpython3.6m.so.1.0 /usr/lib/ #cp libpython3.6m.so.1.0 /usr/lib64/ 2)刷新环境变量 #source /etc/profile
py3study
2020/01/06
1.1K0
创建Python2和Python3的虚拟环境 原
1.创建Python2和Python3的虚拟环境virtualenv:https://www.cnblogs.com/tk2049jq/p/7043509.html
晓歌
2018/08/15
9660
Python 虚拟环境 Virtualenv 分别在 Windows 和 Linux 上的安装和使用
virtualenv 是用来创建 Python 的虚拟环境的库,虚拟环境能够独立于真实环境存在,并且可以同时有多个互相独立的 Python 虚拟环境,每个虚拟环境都可以营造一个干净的开发环境,对于项目的依赖、版本的控制有着非常重要的作用。
Hopetree
2022/09/26
1.4K0
Python 虚拟环境 Virtualenv 分别在 Windows 和 Linux 上的安装和使用
Win10下Python虚拟环境virtualenv安装和使用
在python开发中,我们可能会遇到一种情况,就是当前的项目依赖的是某一个版本,但是另一个项目依赖的是另一个版本,这样就会造成依赖冲突,而virtualenv就是解决这种情况的,virtualenv通过创建一个虚拟化的python运行环境,将我们所需的依赖安装进去的,不同项目之间相互不干扰,如下所示。
菲宇
2022/12/21
3K0
Win10下Python虚拟环境virtualenv安装和使用
Python虚拟环境工具-Virtualenv 介绍及部署记录
在开发Python应用程序时,系统默认的Python版本可能会不兼容这个应用程序, 如果同时开发多个应用程序, 可能会用到好几个版本的python环境, 这种情况下,每个应用可能需要各自拥有一套"独立"的Python运行环境。virtualenv就是用来为一个应用创建一套"隔离"的Python运行环境的工具。virtualenv是python的一个虚拟化环境工具,用来建立一个虚拟的python环境,一个专属于项目的python环境, 用virtualenv 来保持一个干净的环境非常有用, 可以帮助我们在同一台host上创建多套纯净的python解释器环境并实现相互隔离,各个环境下安装的库仅限于自己的环境,不会影响到别人。
洗尽了浮华
2018/12/27
1.9K0
Python | Scrapy必备之配置虚拟环境
虚拟环境是一个将不同项目所需求的依赖分别放在独立的地方的一个工具,它给这些工程创建虚拟的Python环境。它解决了“项目X依赖于版本2.x,而项目Y需要项目3.x”的两难问题,而且使你的全局site-packages目录保持干净和可管理。 virtualenv 是一个创建隔绝的Python环境的工具,virtualenv创建一个包含所有必要的可执行文件的文件夹,用来使用Python工程所需的包。
咸鱼学Python
2019/10/09
1.1K0
Python | Scrapy必备之配置虚拟环境
python高级(4)—— 虚拟环境安装
对电脑稍微有点常识的朋友相信都玩过,比如VMware,virtualbox,或者你用电脑端的模拟器玩手机端的游戏也是一样,其实就是一个假的空间,在Python这里,虚拟环境就是虚拟的开发环境,你可以在里面做任何正常的操作,并且 不会对外部真实电脑环境有任何影响
py3study
2020/01/17
7210
Python虚拟环境(pipenv、venv、conda一网打尽)[通俗易懂]
要搞清楚什么是虚拟环境,首先要清楚Python的环境指的是什么。当我们在执行python test.py时,思考如下问题:
全栈程序员站长
2022/09/27
54K0
Python虚拟环境(pipenv、venv、conda一网打尽)[通俗易懂]
【Python学习笔记】-虚拟环境virtualenv
在开发python应用程序的时候,系统安装的python3只有一个版本:3.4。所有的第三方的包都回被pip安装到python3的site-packages目录下。
DevOps在路上
2023/05/16
4630
windows下python3虚拟环境搭
  为了避免安装过多的python工具包导致python目录臃肿,甚至不同包之间不兼容,我们有必要为python安装虚拟python环境——virtualenv。安装了virtualenv,就可以根据任务创建任意数量的小型的虚拟python环境,为特定的项目安装特定的包,实验结束后,直接删除对应的虚拟环境即可。
py3study
2020/01/03
4820
python virtualenv虚拟环境配置与使用
python开发过程中,我们可能需要同时开发多款应用,这些应用可能公用同一个版本的Python程序,但是使用不同版本的第三方库,比如A应用使用six 1.12.0,而B应用需要使用six 1.15.0。这种情况下,virtualenv就派上用场了,它能为每个应用提供一套“相对独立”的Python虚拟运行环境。
授客
2020/07/14
1.9K0
Python 虚拟环境 virtualenv
  Python 今天我们就不聊了。接下来咱们说说virtualenv,英文比较好的同学,可能已经猜到了一半,virtual,即:虚拟的。那env是什么鬼?environment吗?所以翻译成中文就是”虚拟环境“。     到底什么是虚拟环境呢?顾名思义,它是一个虚拟出来的环境。通俗的来讲,可以借助虚拟机,docker来理解虚拟环境,就是把一部分内容独立出来,我们把这部分独立出来的东西称作“容器”,在这个容器中,我们可以只安装我们需要的依赖包,而且各个容器之间互相隔离,互不影响。我们要学习Django,我们通过这个环境搞一个Django的虚拟环境就好了。 【前提概要】     Django也是一个非常流行的web框架。由于Django的迭代更新非常快,也比较频繁,所以有一些过时的东西需要丢弃掉,一些新的东西需要加进来,从而导致不同的版本之间不兼容。比如Django1.3、Django1.4、Django1.8之间就有很大的差异性。     或者是说,以Python的版本举例,现在工作中使用的Python版本与Python2.x和Python3.x两种。 【故事背景】   假设要进行Python web开发,使用的是Django。手上还有两个老项目A和B需要维护,而新项目C也正在开发中。这里项目A使用的是django1.3,项目B使用的是django1.4,而新项目C使用的是Django1.8。那么问题来了,如何同时在本地进行ABC这三个项目的开发和维护? 正常的模式可能是这样:现在在A项目上有一个BUG需要修复,于是,先执行下面的命令,删除掉原来的版本:
Lansonli
2021/10/09
1.1K0
Centos7 安装python虚拟环境+Django
鉴于virtualenv不便于对虚拟环境集中管理,所以推荐直接使用virtualenvwrapper。 virtualenvwrapper提供了一系列命令使得和虚拟环境工作变得便利。它把你所有的虚拟环境都放在一个地方。
py3study
2018/08/03
1.7K0
Python 虚拟环境方案比较
最近在写一个网站后台,由于涉及到阿里云的 SDK ,而阿里云在自己的源(https://mirrors.aliyun.com)上发布的 SDK 要新,因此在设置 Python 的包管理的时候需要注意很多东西。
Fred Liang
2018/08/02
5580
Django(2)python虚拟环境virtualenvwrapper
虚拟环境(virtual environment),它是一个虚拟化,从电脑独立开辟出来的环境。通俗的来讲,虚拟环境就是借助虚拟机来把一部分内容独立出来,我们把这部分独立出来的东西称作“容器”,在这个容器中,我们可以只安装我们需要的依赖包,各个容器之间互相隔离,互不影响。
全栈程序员站长
2022/09/16
3230
python的虚拟环境
-p PYTHON_EXE, --python=PYTHON_EXE 指定生成的虚拟环境使用的Python解释器:
py3study
2020/01/02
6750
相关推荐
Python3创建虚拟环境
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验