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

时间:2016-11-04 11:57:55

标签: python anaconda statsmodels egg

我正在尝试在没有互联网连接的计算机上安装devsmodels版本。我已经在我自己的机器上下载并安装了软件包(经过测试和正常工作),我已经在离线机器上复制了import RPi.GPIO as GPIO import time stop_time = time.time() + 10 GPIO.setmode(GPIO.BOARD) GPIO.setup(7,GPIO.OUT) try: while time.time() < stop_time: GPIO.output(7,1) time.sleep(0.0015) GPIO.output(7,0) time.sleep(0.01) except KeyboardInterrupt: pass print"Stopping Auto-Feeder" GPIO.cleanup() 下的结果文件夹。

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

Anaconda\Lib\site-packages

内部statsmodels文件夹(0.8.0下的那个)包含我要导入的最新版本。为了让导入器选择正确的版本,我复制了一台名为site-packages\ statsmodels statsmodels-0.6.1-py2.7.egg-info statsmodels-0.8.0-py3.5-win-amd64.egg\ EGG-INFO statsmodels 的机器上出现的文件,其中包含以下内容

easy-install.pth

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

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)

我在最后一次函数调用中检查了变量 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. ,并指向存在于statespace文件夹下的DLL __file__

任何人都知道这方面的解决方法或如何告诉导入方找到丢失的模块?

1 个答案:

答案 0 :(得分:1)

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

列出所有必需的库

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

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

virtualenv venv
source venv/bin/activate
pip install statsmodels 

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

pip freeze > requirements.txt

下载所有必需的库

创建一个存储所有鸡蛋/轮子的目录,并使用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

它应该有用。