【问题标题】:Update anaconda failed - Entry point not found更新 anaconda 失败 - 找不到入口点
【发布时间】:2020-04-25 22:47:01
【问题描述】:

我刚刚尝试将我的 anaconda 环境更新到最新版本,但现在收到错误消息。我以管理员身份打开了conda环境,发出的命令是:

conda update conda
conda update anaconda

第一个命令完成得很好。第二个命令产生错误:

pythonw.exe - Entry Point Not Found

The procedure entry point ?PyWinObject_FromULARGE_INTEGER@@YAPEAU_object@@AEAT_ULARGE_INTEGER@@@Z could not be located in the dynamic link library c:\ProgramData\Anaconda3\pythoncom37.dll

我找到了对此类错误的引用,该错误需要我从 Anaconda3/Library/bin 中复制一个文件 libssl-1-1-x64.dllAnaconda3/DLLs 中的文件.

How to Fix Entry Point Not Found while installing libraries in conda environment

但是,我在源位置没有那个文件。我可以发出任何命令来再次下载这个文件,或者我可以从网上安全地下载那个文件吗?

【问题讨论】:

    标签: python anaconda pythonw


    【解决方案1】:

    更新 conda 时遇到同样的错误。

    但是,文件pythoncom37.dll 位于C:\Windows\System32。 原来该文件是之前从 Python 3.7.5 更新到 Python 3.8 的遗留文件, 即与 conda 本身的安装无关。我的猜测是 conda 在 Python 3.7 中注册,然后无法使用来自不兼容安装的 dll。

    解决方案:从C:\Windows\System32 中删除pythoncom37.dllpywintypes37

    【讨论】:

    • 这对我有用。
    【解决方案2】:

    我在使用带有 sublime text3 的 anaconda python3 更新 tensorflow 和其他软件包时遇到了同样的问题。

    为了解决这个问题,我已经删除了错误窗口中显示的目录中的所有 pythoncom37.dll。

    从其他目录替换文件无效。

    同样重新安装 conda、升级 conda、重新安装 sublimetext3 或 tensorflow 也无济于事。

    【讨论】:

    • 嗨,爱德华。欢迎来到社区。感谢您的回复。对我有用的修复可能不适用于其他人。希望这仍然可以帮助遇到这些帖子的其他人,这就是 SO 的全部意义所在。
    【解决方案3】:

    鉴于似乎有很多答案和一些适用于具有不同设置、python 版本和环境的不同人的一些工作,所以快速总结一下要尝试的事情。

    1. 转到[envpath]\Scripts 并运行py pywin32_postinstall.py -install 以更新pywin32 依赖项
    2. [anacondaPath]\Lib\site-packages\pywin32_system32 中的两个文件复制到C:\Windows\System32
    3. 用 conda 安装 pywin32 而不是用conda install pywin32 安装 pip
    4. 强制 pywin32 为特定版本(例如 Python 3.7 为 224)pip install --upgrade pywin32==224
    5. \Lib\site-packages\pywin32_system32 添加到您的路径环境变量中
    6. 卸载 pypiwin32 并安装 pywin32。 pip uninstallpip install pywin32
    7. 下载最新的 Visual C++ 版本并重新启动计算机 (https://support.microsoft.com/en-us/topic/the-latest-supported-visual-c-downloads-2647da03-1eea-4433-9aff-95f26a218cc0)
    8. 降级到例如Python 3.6(如果可能的话)

    如果其中任何一个有效,评论您的案例中的哪一个可能有助于理解什么时候有效:)

    列表项

    【讨论】:

    • 第一种方法对我有用。此外,我不得不删除 Scripts 文件夹中的 pythoncom36.dll 和 pywintypes36.dll。
    【解决方案4】:

    对不起 - 线索在错误消息中。关于如何修复入口点的条目引导我朝着正确的方向前进。但这是我需要复制的 pythoncom37.dll 文件。

    这就是你盲目遵循指示所得到的结果。

    非常感谢。

    【讨论】:

      【解决方案5】:

      当我遇到这个错误时,它没有显示入口点的路径。

      我尝试重新安装 anaconda 并没有解决问题。

      我通过pip install win32 找到了路径,它说明了正在使用的库的路径。结果发现它连接到了损坏的漫游配置文件版本,因此将漫游配置文件文件夹重命名(为 _OLD)解决了这个问题。

      【讨论】:

        【解决方案6】:

        遇到了和上图一样的问题,用这些步骤解决了。

        • 从相关环境中删除了文件pythoncom37.dll
        • 删除文件C:\tools\Anaconda3\Library\bin\pythoncom37.dll
        • 运行conda install --force-reinstall nb_conda_kernels ipykernel
        • 按环境重复。

        请注意,这也会升级活动环境中的所有环境包。

        【讨论】:

          【解决方案7】:

          我遇到了同样的问题。但是我的虚拟环境一切正常,所以我有一个解决方法:

          1. 使用所有标准 anaconda 包创建一个名为“env_base”的新虚拟环境

          conda create -n env_base anaconda python=3.7

          1. 激活它

          conda activate env_base

          1. 创建内核

          conda install -c anaconda ipykernel

          python -m ipykernel install --user --name=env_base

          然后将此虚拟环境用作基础 jupyter notebook。你可以用这个链接替换你的启动快捷方式,它与使用基本包的实际 Jupyter notebook 一样好。

          它不能解决问题,但可以有效地回避它。

          【讨论】:

            猜你喜欢
            • 2017-06-03
            • 2018-12-15
            • 1970-01-01
            • 1970-01-01
            • 2013-06-26
            • 1970-01-01
            • 2018-12-28
            • 2019-08-12
            • 2013-08-25
            相关资源
            最近更新 更多