首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未能在shiv包中加载c-扩展。

未能在shiv包中加载c-扩展。
EN

Stack Overflow用户
提问于 2022-08-22 18:54:40
回答 1查看 51关注 0票数 0

我维护一个项目,我将其打包到一个shiv包中,并在工作中分发。我在shiv包中包含了所有必需的包依赖项,这包括numpy和PIL。假设每个人都在使用Windows和python 3.6+是安全的。

numpy和PIL的C-扩展似乎没有和其他软件包一起出现,因为如果我将pyz提供给在他们的环境中已经拥有与zipapp所用的版本相同的软件包的人,它的工作原理是正常的,但是如果它们有任何其他版本,它就无法加载这些扩展,而是按预期从zipapp加载所有其他包。我也可以将numpy和PIL从压缩的站点包中排除在外,但是这违背了zipapp的目的,因为它依赖于用户的环境,而我不相信它会被更新。

我正在用shiv --compressed --compile-pyc --site-packages "path_to_site-packages" -o my_output.pyz -e the_package:__run_main构建我的shiv包

通过阅读shiv文档,我认为--compile-pyc是缺少的键,但使用这个键或不使用它返回相同的结果。如有任何建议,将不胜感激。

看来这可能与这个未回答的问题Python - Pyinstaller Numpy C-extensions error有关

EN

回答 1

Stack Overflow用户

发布于 2022-10-21 13:02:38

我终于找到了我的问题的原因。我使用Anaconda来管理我的python环境,在创建shiv包时,"path_to_site-packages"文件夹就是Anaconda创建的文件夹。我无法确切解释为什么会出现这种情况,但我的假设是,Anaconda管理C库的存储位置,而不是pip。

解决我的问题的方法是,我创建了我自己的专用站点包文件夹,用于pip installing安装shiv -- --target对该文件夹所需的所有东西。一旦我这样做,从那个文件夹构建shiv包就完全解决了缺少的C库问题。我希望这能帮上忙!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73449828

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档