复制整个Python27目录到另一台PC后无法导入'jpeg_ls

2 投票
1 回答
689 浏览
提问于 2025-04-18 04:41

我有两台64位的Windows 7电脑,都安装了Python 2.7.6。我把CharPyLS这个库(jpeg_ls)复制到了两个Python27目录的site-packages文件夹里。一台机器运行得很好,另一台却说找不到charPyLS的DLL文件。

我尝试过的事情有:
- 用md5检查过复制的文件是否一样
- 检查过系统路径是否相同
- 确认两台机器都在运行Python 2.7.6
- 把整个Python27目录复制到两台机器上

除了Python27目录里的文件,还有什么可能影响这个问题的吗?

补充:这个模块是在第三台机器上构建的,然后再复制到这两台上。因为一台能用,所以应该和Windows注册表没关系。

补充2:运行Dependency Walker解决了问题。构建CharPyLS的那台电脑上有MinGW,所以这个模块是基于libgcc_s_dw2-1.dll和libstdc++-6.dll存在的假设来构建的。把这两个文件复制到Python27/DLLs文件夹里就解决了问题。

1 个回答

1

补充说明:

extra_link_args = ['-static', '-static-libstdc++']

在CharPyLS的setup.py文件中(大约在第21行),添加这段代码应该会把这两个dll文件合并到你用以下命令构建的_CharLS.pyd文件里:

python setup.py build
python setup.py install

撰写回答