在使用py2exe移植时,似乎无法弄清楚如何正确导入此库。我尝试在设置文件中包含匀称的库,将所有必需的dll复制到dist文件夹中,以及其他许多内容现在已经复制了几天。我可以在python中导入shapely.geometry功能很好,它似乎没有进入py2exe输出文件。
有什么想法吗?
setup.py
from distutils.core import setup
import py2exe
setup(console=['test.py'])
test.py
from shapely.geometry import Polygon
from shapely.geometry import Point
print 'test'
错误:
C:\用户\用户\桌面\ DIST> TEST.EXE 回溯(最近一次调用最后一次):
文件" test.py",第1行,
文件"匀称\ geometry__init __。pyc",第4行,
文件"匀称\ geometry \ base.pyc",第9行,
文件" shapely \ coords.pyc",第8行,
文件"形状\ geos.pyc",第96行,
文件" ctypes__init __。pyc",第365行, init
WindowsError:[错误126]找不到指定的模块
答案 0 :(得分:1)
要包含Shapely所需的GEOS DLL,您可能需要通过setup.py
中的py2exe options明确包含Shapely包。
e.g。 setup.py:
...
setup(console=['test.py'],
options={'py2exe': {'packages': ['shapely']}})
(这也适用于菲奥娜 - 见https://gis.stackexchange.com/a/81821/6976)
包含GEOS DLL后,您可能还需要明确排除Visual C ++ 2008 Redistributable DLL - 请参阅https://stackoverflow.com/a/12153700/478380