【问题标题】:pipenv install error ImportError: cannot import name 'ensure_file_on_disk'pipenv 安装错误 ImportError:无法导入名称“ensure_file_on_disk”
【发布时间】:2020-06-30 09:55:25
【问题描述】:

我正在尝试使用pipenv 2018.11.26Windows [Version 10.0.14393]Python 3.5.2 (Anaconda 4.1.1 (64-bit)) 上创建一个python 虚拟环境。这些都是我无法更改的强制设置。

我收到以下神秘错误:

C:\project_path\pipenv install

Creating a virtualenv for this project…
Pipfile: C:\project_path\Pipfile
Using C:/Anaconda3/pythonw.exe (3.5.2) to create virtualenv…
[  ==] Creating virtual environment...ImportError: cannot import name 'ensure_file_on_disk'

Failed creating virtual environment
[pipenv.exceptions.VirtualenvCreationException]:   File "c:\anaconda3\lib\site-        packages\pipenv\cli\command.py", line 254, in install
[pipenv.exceptions.VirtualenvCreationException]:           editable_packages=state.installstate.editables,
[pipenv.exceptions.VirtualenvCreationException]:   File "c:\anaconda3\lib\site-    packages\pipenv\core.py", line 1741, in do_install
[pipenv.exceptions.VirtualenvCreationException]:       pypi_mirror=pypi_mirror,
[pipenv.exceptions.VirtualenvCreationException]:   File "c:\anaconda3\lib\site-    packages\pipenv\core.py", line 574, in ensure_project
[pipenv.exceptions.VirtualenvCreationException]:       pypi_mirror=pypi_mirror,
[pipenv.exceptions.VirtualenvCreationException]:   File "c:\anaconda3\lib\site-    packages\pipenv\core.py", line 506, in ensure_virtualenv
[pipenv.exceptions.VirtualenvCreationException]:       python=python, site_packages=site_packages,     pypi_mirror=pypi_mirror
[pipenv.exceptions.VirtualenvCreationException]:   File "c:\anaconda3\lib\site-    packages\pipenv\core.py", line 935, in do_create_virtualenv
[pipenv.exceptions.VirtualenvCreationException]:       extra=[crayons.blue("{0}".format(c.err)),]
[pipenv.exceptions.VirtualenvCreationException]:
Failed to create virtual environment.

主要原因是导入错误,但我找不到任何名为 ensure_file_on_disk 的内容。

我已尝试卸载并重新安装pipenv 无济于事。

另外,由于我在代理后面运行,我创建了系统环境变量no_proxyhttp_proxyhttps_proxy,但它也没有工作。

顺便说一句,如果我尝试运行pipenv shell,它会给我完全相同的错误,所以它似乎毕竟不是连接问题。

你们有遇到过这个问题吗?

谢谢

【问题讨论】:

  • github.com/pypa/virtualenv/issues/1876 似乎是一个常见问题。 @gaborbernat 在链接中有解决方案和解释。
  • @gaborbernat 说要卸载软件包的全局和用户特定安装,然后只安装一个。由于我还没有找到为特定用户卸载 pipenv 的方法,例如“pip uninstall --user pipenv”,我只使用“pip uninstall pipenv”将其卸载并重新安装。这并没有解决问题。有没有办法查看是否有任何全球安装的 pipenv?谢谢
  • @AhaduTsegayeAbebe 您可能需要多次运行卸载命令,请参阅下面 Vinay 的回答

标签: python windows pipenv


【解决方案1】:

我解决了这个问题。就我而言,这是因为安装了多个版本的 virtualenv。我多次使用pip3 uninstall virtualenv 删除了所有版本。此后,我再次安装了最新的 virtualenv。

【讨论】:

    【解决方案2】:

    我通过卸载 virtualenv 软件包并重新安装我发现是 20.0.25 的兼容版本解决了这个问题

    【讨论】:

      【解决方案3】:
      pip3 install --user --upgrade cython virtualenv==20.0.28
      

      【讨论】:

      • 尝试为您的答案添加解释,而不仅仅是编写代码,这将帮助用户了解您的答案与其他选项相比提供了什么以及它有何不同。
      【解决方案4】:

      在我的情况下,更新 pip 有帮助

      python3.6 -m pip install --upgrate pip

      下一步卸载 virtualenv

      python3.6 -m pip uninstall virtualenv

      并安装它

      python3.6 -m pip install virtualenv

      【讨论】:

        猜你喜欢
        • 2021-12-28
        • 2019-08-15
        • 1970-01-01
        • 2019-03-11
        • 1970-01-01
        • 1970-01-01
        • 2019-08-06
        • 2018-05-11
        • 2016-10-27
        相关资源
        最近更新 更多