python 虚拟环境文件后移动后的一个错误

python 虚拟环境文件后移动后的一个错误

一、错误出现

在pycharm终端输入:

 (myvenv01) PS F:\pythonProject\myvenv01> pip3 install pillow

其中myevev01是已经激活的python虚拟环境,结果输出以下错误:
Fatal error in launcher: Unable to create process using"F:\pythonProject\myproject01\myvenv01\Scripts\python.exe" “F:\pythonProject\myvenv01\Scripts\pip3.exe” install pillow’: ???

在虚拟环境python myvenv01 安装模块Pillow失败,产生致命错误。 而F:\pythonProject\myproject01\myvenv01是不存在的的虚拟环境路径,F:\pythonProject\myvenv01才是已经激活的虚拟环境路径。

在其他终端虚拟环境下输入:

(myvenv01) F:\pythonProject\myvenv01\Scripts> pip 

Fatal error in launcher: Unable to create process using '“F:\pythonProject\myproject01\myvenv01\Scripts\python.exe” “F:\pythonProject\myvenv01\Scripts\pip.exe” ': ???
尝试在一个名为 myvenv01 的虚拟环境中使用 pip,但遇到了与上面同样的一个错误。

二、错误分析

“F:\pythonProject\myproject01\myvenv01\Scripts\python.exe” “F:\pythonProject\myvenv01\Scripts\pip.exe” 不在同一个地方。原来myvenv01
开始在创建在:\pythonProject\myproject01\下,后来移动到F:\pythonProject\下.

在这里插入图片描述

在这里插入图片描述查看虚拟环境的创建文件:

  def create(self, env_dir):
        """
        Create a virtual environment in a directory.

        :param env_dir: The target directory to create an environment in.

        """
        env_dir = os.path.abspath(env_dir)
        context = self.ensure_directories(env_dir)
        # See issue 24875. We need system_site_packages to be False
        # until after pip is installed.
        true_system_site_packages = self.system_site_packages
        self.system_site_packages = False
        self.create_configuration(context)
        self.setup_python(context)
        if self.with_pip:
            self._setup_pip(context)
        if not self.upgrade:
            self.setup_scripts(context)
            self.post_setup(context)
        if true_system_site_packages:
            # We had set it to False before, now
            # restore it and rewrite the configuration
            self.system_site_packages = True
            self.create_configuration(context)
        if self.upgrade_deps:
            self.upgrade_dependencies(context)

该函数用于在指定目录中创建一个虚拟环境。
首先,将env_dir转换为绝对路径。
然后,通过ensure_directories方法确保目录中的必要文件夹存在。
接着,设置system_site_packages为False,以确保在安装pip之前不会包含系统级的包。
然后,调用create_configuration、setup_python方法进行配置和Python环境的设置。
如果with_pip参数为True,则调用_setup_pip方法安装pip。
如果upgrade参数为False,则调用setup_scripts和post_setup方法安装脚本和进行后续设置。
如果true_system_site_packages为True,则将system_site_packages设置回True,并重新写入配置。
最后,如果upgrade_deps参数为True,则调用upgrade_dependencies方法升级依赖项。
从上可以看到所创建的虚拟环境中包含了虚拟环境文件夹的位置. 我开始创建的虚拟环境文件的位置, 如F:\pythonProject\myproject01\myvenv01, 后来复制移到新位置F:\pythonProject\myvenv01. 在新虚拟环境下使用pip, 会在旧的位置寻找python.exe和新位置寻找pip.exe运行, 建立一个进程. 因F:\pythonProject\myproject01\myvenv01已经删除,因此产生错误.

  • 13
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值