问题标签 [python-wheel]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
83888 浏览

python - 为缺少依赖声明的包(如 scipy)构建轮子

我认为这在这里没有什么区别,但我使用的是 Python 2.7。

所以我的问题的一般部分如下:我virtualenv为每个项目使用单独的。我没有管理员权限,也不想弄乱系统安装的软件包。自然,我想使用轮子来加快跨virtualenvs 的包升级和安装。如何构建仅在特定范围内满足依赖关系的轮子virtualenv

具体来说,发行

失败了

因为numpy它不是全局存在的,并且当安装了virtualenvwith时构建轮子可以工作numpy,所以让轮子依赖于特定virtualenv版本的numpy.

pandas这也取决于numpy似乎安装自己的组件,numpy但我不确定这是最好的解决方案。

我可以安装numpy--user使用它来制造scipy轮子。有更好的选择吗?

0 投票
2 回答
1338 浏览

python - 在 Windows 上部署 Python 包,编译依赖项,而不安装 Visual Studio?

如果需要编译某些依赖项,将 Python 包部署到 Windows Server 的最佳方法是什么?安装 Visual Studio 是不可能的,我不愿意在每次需要更新时传递一个 250MB 的文件。pip install -r requirements.txt是目标。

有什么建议么?

0 投票
2 回答
375 浏览

python - Python打包分发场景

我对 python 包装还比较陌生,每次我想我找到“解决方案”时,我都会被抛出另一个曲线球,这是我的问题,然后是我尝试过的问题:

  • 我有安装了 Python 2.7.3 的 CentOS 和 Ubuntu 系统,这些系统是从网络上分区的,所以我必须创建一个“一体化包”
  • 目标系统没有安装setuptools、easy_install、pip、virtualenv(这是我要解决的问题)
  • 应用程序的 requirements.txt(或 setup.py install_dependencies)相当重(Flask 等...)(尽管实际上,这不是问题)

我的包装复杂度进展缓慢:

对于连接的系统,我有一个非常好的过程

  • 包装:python2.7 setup.py sdist
  • 安装:创建一个virtualenv,解压发行版,python setup.py install

对于断开连接的系统,我尝试了一些方法。Wheels 似乎是合适的,但我无法进行包含 setuptools、easy_install、pip 的“最终”安装。我是车轮新手,所以也许我遗漏了一些明显的东西。

我从这些参考资料开始:

  • Python on Wheels,这非常有用,但我无法安装我的 .sh 脚本、测试数据等...所以我现在实际上正在使用 wheel/sdist 混合
  • Wheel,Docs,再次非常有帮助,但我被困在“断开系统的最后一英里”
  • 然后我发现我可以将 virtualenv 打包成一个轮子 :-) 耶
  • 然后我发现我可以将easy_install打包为python程序:-)是的,但这取决于setuptools,嘘,我找不到如何打包/安装这些

是否有关于引导具有 Python、已断开连接但没有 setuptools、pip、wheels、virtualenv 的系统的参考?我的一个人安装这个简单代理必须做的事情清单变得太长了:/我想如果我能完成依赖链,那么必须有一种方法可以将自定义脚本锁定到 setup.py 以缩小自定义步骤退后,退下 ...

0 投票
1 回答
3228 浏览

python - 使用 setup.py 和 wheel 安装包依赖项

我们正在使用内部托管的 PyPI服务器devpi-serverpip install scipy已创建。但是,使用我们内部开发的任何依赖于其中一个包的 python 包并运行python setup.py install|develop|test|whatever会导致以下错误:

并与easy_install

如果我抓住它正在查看的 URL,我会得到:

如果我请求该输出中列出的 URL,我会得到轮子:

0 投票
1 回答
488 浏览

python - 在 Jenkins 上构建一个包含 svn:externals 文件的 python 轮子

我正在 Python 2.7.6 32bit Windows 32 上构建一个包

软件包某些组件的唯一确定来源是 svn 'share'。这家公司的常见做法是使用 svn:externals 将其包含到您的项目中。

构建这个包的正常方法是:

在我的工作站上一切正常(我用 TortoiseSVN 检查了代码),但是当我在 Jenkins 上运行相同的进程时,bdist_wheel 进程不包含任何通过 svn:externals 获取的 .py 文件。

在阅读完文档后,这似乎是因为一个功能可以根据 SVN 跟踪哪些文件来识别哪些脚本是包的一部分。看来,由于 Jenkins 检查文件的方式,bdist_wheel 看到我正在使用 SVN,并假设它知道如何确定跟踪哪些文件,但得到的答案是错误的。

我需要一种方法来阻止 bdist_wheel 命令尝试猜测我关心哪些文件(我实际上希望项目中的每个 .py 文件都包含在内,无论它是如何引入的)

我尝试使用 MANIFEST.in 文件指定我需要的文件,但它不起作用。

在这个例子中,'externals' 是我的源代码树中的一个顶级目录,它包含一个init .py 文件和一堆 svn:external'd 目录。在构建的 whl 文件中只能看到 init 文件。

不幸的是,这使得 .py 文件的行为就像它们是数据一样,在日志中我可以看到:

这显然不是一个真正的解决方案!

Pip、Virtualenv 和所有相关工具都是最新的稳定版本。

0 投票
2 回答
5313 浏览

python - 在 Python 轮子中包含运行时依赖项

我想分发一个完整的 virtualenv,或者一堆具有运行时依赖项的精确版本的 Python 轮子,例如:

  • pycurl
    • pycurl.so
      • libcurl.so
        • libz.so
        • libssl.so
        • libcrypto.so
        • libgssapi_krb5.so
          • libkrb5.so
            • libresolv.so

我想我可以依靠系统安装 libssl.so,但肯定不是正确版本的 libcurl.so,也可能不是 Kerberos。

将一个库打包到具有所有运行时依赖项的轮子中的最简单方法是什么?

或者这是一个傻瓜的差事,我应该打包整个 virtualenv?如何可靠地做到这一点?

PS 动态编译不是一个选项,一些模块已经打了补丁。

0 投票
3 回答
103099 浏览

python - 为 python 项目构建一个轮子/鸡蛋和所有依赖项

为了在我们公司内进行 python 项目,我需要制作一个可安装的发行版。

这应该包括:

  • 我的项目的鸡蛋或 whl
  • 项目的每个依赖项的鸡蛋或 whl
  • (可选)生成一个 requirements.txt 文件,列出此版本的所有可安装组件

是否有一个简单的插件(例如 bdist_wheel 的替代品)不仅可以编译一个轮子,还可以编译该项目的组件?

显然我可以编写这个脚本,但我希望可能有一个捷径可以在更少的步骤中构建包 + 依赖项。

这需要在 Windows + Linux 上的 Python 2.7 上工作。

0 投票
0 回答
470 浏览

python - 从 Python Wheel 混淆或删除源代码?

我想在包中分发 python 代码,但是它是专有代码,将存储在客户端的服务器上,所以我不希望共享源代码。

是否可以生成带有混淆代码或删除代码的 Python Wheel?

0 投票
8 回答
120715 浏览

python - 为什么我不能在 python 中创建一个轮子?

这是我正在运行的命令:

另外,我正在用自制的 python 运行一个 mac

这是我的 setup.py 脚本: https ://gist.github.com/cloudformdesign/4791c46fe7cd52eb61cd

我要疯了——我不明白为什么这不起作用。

0 投票
0 回答
144 浏览

python - 如何让车轮文件具有以下格式:package-ver.sio.n-py3-none-any.whl?

我想通了,查看链接: https ://gist.github.com/cloudformdesign/4791c46fe7cd52eb61cd

我只需要添加py_modules=["setup"],显然 setup.py 不喜欢安装一个空的存储库,哈哈!

这似乎没有奏效

我得到一个像这样的文件:nioblocks-1.01-cp34-cp34m-macosx_10_9_x86_64.whl

我想要的是这样的轮子文件(这似乎是标准):

nioblocks-1.01-py3-none-any.whl

我需要一些特殊的配置吗?

这是我的 setup.py 脚本:https ://gist.github.com/cloudformdesign/4791c46fe7cd52eb61cd

编辑

我注意到在轮文件的 WHEEL 中,我有以下几行: Root-Is-Purelib: false Tag: cp34-cp34m-macosx_10_9_x86_64

我绝对是一个“纯库”——这个包中没有一个文件!所以这是问题的根源。