gpt4 book ai didi

python - 如何从 .egg 文件夹离线安装新版本的 python 包?

转载 作者:行者123 更新时间:2023-12-01 03:35:38 28 4
gpt4 key购买 nike

我正在尝试在没有互联网连接的计算机上安装 statsmodels 的开发版本。我已在自己的计算机上下载并安装了该软件包(经过测试且工作正常),并将生成的文件夹复制到离线计算机上的 Anaconda\Lib\site-packages 下。

我还保留了现有的 statsmodels 文件夹(因为这是我的机器上发生的情况),以便两台机器中的结构看起来像

site-packages\
statsmodels
statsmodels-0.6.1-py2.7.egg-info
statsmodels-0.8.0-py3.5-win-amd64.egg\
EGG-INFO
statsmodels

内部 statsmodels 文件夹(0.8.0 下的文件夹)包含我要导入的最新版本。为了让导入程序能够选择正确的版本,我复制了一个出现在我的计算机上的名为 easy-install.pth 的文件,其中包含以下内容

import sys; sys.__plen = len(sys.path)
./statsmodels-0.8.0-py3.5-win-amd64.egg
import sys; new = sys.path[sys.__plen:]; del sys.path[sys.__plen:]; p = getattr(sys, '__egginsert', 0); sys.path[p:p] = new; sys.__egginsert = p + len(new)

现在导入程序选择了正确的版本 (0.8.0),但无法导入 DLL,出现以下错误

    C:\Anaconda2\lib\site-packages\statsmodels-0.8.0-py3.5-win-amd64.egg\statsmodels\tsa\statespace\tools.py in set_mode(compatibility)
59 if not compatibility:
60 from scipy.linalg import cython_blas
---> 61 from . import (_representation, _kalman_filter, _kalman_smoother,
62 _simulation_smoother, _tools)
63 compatibility_mode = False

C:\Anaconda2\lib\site-packages\statsmodels-0.8.0-py3.5-win-amd64.egg\statsmodels\tsa\statespace\_representation.py in <module>()
6 print(__name__,__file__)
7 imp.load_dynamic(__name__,__file__)
----> 8 __bootstrap__()

C:\Anaconda2\lib\site-packages\statsmodels-0.8.0-py3.5-win-amd64.egg\statsmodels\tsa\statespace\_representation.py in __bootstrap__()
5 __loader__ = None; del __bootstrap__, __loader__
6 print(__name__,__file__)
----> 7 imp.load_dynamic(__name__,__file__)
8 __bootstrap__()

ImportError: DLL load failed: The specified module could not be found.

我在最后一个函数调用中检查了变量__file__,它指向存在于statespace文件夹下的DLL_representation.cp35-win_amd64.pyd

有人知道这个问题的解决方法或者我如何告诉导入者找到丢失的模块吗?

最佳答案

我建议您使用pip列出所有必需的库并下载它们,然后分发下载的库并安装。

列出所有必需的库

来自与目标服务器具有相同配置的服务器/工作站(相同的操作系统、相同的系统范围的 Python)。

创建一个新的空 virtualenv 并安装 statsmodels像往常一样:

virtualenv venv
source venv/bin/activate
pip install statsmodels

然后用 pip freeze 列出所有必需的软件包:

pip freeze > requirements.txt

下载所有必需的库

创建一个目录来存储所有的eggs/wheels,并使用pip download下载库:

mkdir libs
cd libs/
pip download --no-deps -r requirements.txt

分发到您的目标服务器

libs 目录复制到目标服务器。

创建一个 virtualenv 并从您的 libs 目录安装:

virtualenv venv
source venv/bin/activate
pip install --find-links libs/ statsmodels

应该可以。

关于python - 如何从 .egg 文件夹离线安装新版本的 python 包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40422116/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com