标签: python-wheel

Python Wheels 的条件依赖

我有一个 Python 包,我想把它做成一个轮子。在 Python 2 上,包使用ipaddr库。在 Python 3 上,它使用内置ipaddress库。对于sdist包,我签sys.version_infosetup.py以根据 Python 版本设置要求。不幸的是,这似乎不适用于轮子。是否可以基于带有轮子的 Python 版本进行条件依赖?

python python-2.7 python-3.x python-wheel

5
推荐指数
1
解决办法
503
查看次数

从轮子格式安装numpy:"......这个平台上不支持轮子"

我意识到一个与此相关的问题已经被问到无法从轮式安装numpy,但是那里提出的解决方案对我不起作用.我也问过那个帖子(通过回答!)但是我没有得到任何回复,所以这里有:

我一直在尝试安装matplotlib,但我首先需要安装numpy.我下载了文件numpy-1.8.2 + mkl-cp26-none-win_amd64.whl,然后尝试使用pip安装它.我一直得到的错误信息是:

"numpy-1.8.2 + mkl-cp26-none-win_amd64.whl不是这个平台上支持的轮子".我在上面引用的线程建议的解决方案是将"_amd64"替换为"32",使文件名为numpy-1.8.2 + mkl-cp26-none-win32.whl.这也不起作用,我得到与上面完全相同的错误.

有什么建议?

我在Windows 7 64位上使用64位64位Python.

python numpy pip matplotlib python-wheel

5
推荐指数
1
解决办法
1万
查看次数

如何防止python轮扩大shebang?

如果我构建一个包python setup.py bdist_wheel,生成的包将扩展setup.py中列出的脚本中的shebang,setup(scripts=["script/path"])以使用我的python可执行文件的绝对路径#!/home/f483/dev/storj/storjnode/env/bin/python.

这显然是一个问题,因为使用滚轮的任何人都没有这个设置.它似乎没有什么区别我正在使用什么样的shebang.

python shebang python-wheel

5
推荐指数
1
解决办法
439
查看次数

为 numpy 等库创建 Python Wheels

我们目前正在运行我们自己的私有 PyPi 服务器,并上传我们内部 Python 库的轮子以加快安装速度。

我们的许多工具都需要 numpy、scipy、pandas 等。

通过从源代码安装所有依赖项,然后使用,我们为所有依赖项构建了轮子

pip wheel .
Run Code Online (Sandbox Code Playgroud)

它为我们所有的依赖项输出轮子 - 或者我们是这么认为的。

我们发现,当我们从我们的私有 PyPi 安装 numpy 时,它可以作为轮子使用,会发生以下情况。

>>> import numpy
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "redacted/lib/python2.7/site-packages/numpy/__init__.py", line 199, in <module>
    from . import random
  File "redacted/site-packages/numpy/random/__init__.py", line 99, in <module>
    from .mtrand import *
ImportError: redacted/lib/python2.7/site-packages/numpy/random/mtrand.so: undefined symbol: PyFPE_jbuf
Run Code Online (Sandbox Code Playgroud)

我很清楚这些轮子没有正确创建。我不清楚的是如何解决这个问题。我们不会将这些分发给公众,仅用于我们的内部工具。

python numpy python-wheel pypiserver

5
推荐指数
1
解决办法
869
查看次数

为什么“pip install lxml”不使用提供的轮子,而是尝试编译?

一个轮子是通过PIP安装分发预编译包的新途径。

pypi上的lxml 条目具有可用于“manylinux”的轮子。我正在运行 ubuntu。

但是,当我尝试 pip install lxml 时,它似乎仍然尝试编译。任何想法为什么?

mktmpenv
pip install lxml==3.6.4

Collecting lxml==3.6.4
  Using cached lxml-3.6.4.tar.gz
Building wheels for collected packages: lxml
  Running setup.py bdist_wheel for lxml

  Complete output from command /home/harry/.virtualenvs/tmp-940224e01c89b3f0/bin/python3 -c "import setuptools;__file__='/tmp/pip-build-gxw05tyo/lxml/setup.py';exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" bdist_wheel -d /tmp/tmp78u4a871pip-wheel-:
  Building lxml version ....
  Building lxml version 3.6.4.
  Building without Cython.
  Using build configuration of libxslt 1.1.29
  running bdist_wheel
  running build
  running build_py
  creating build
  creating build/lib.linux-x86_64-3.5
[...etc]
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

python ubuntu lxml pip python-wheel

5
推荐指数
1
解决办法
1336
查看次数

如何编辑车轮包 (.whl)?

我有一个 python wheel 包,在提取时我找到了一些 python 代码,我想编辑这段代码并再次重新生成相同的 .whl 包并测试它以查看编辑。我该怎么做?

python software-packaging python-wheel python-packaging

5
推荐指数
2
解决办法
6664
查看次数

从 Dockerfile 中的自定义 whl 文件安装 pip

我有一个 Dockerfile 正在尝试whl使用pip. 我想强制在搜索中pip包含我的whl文件,但它没有:

No distributions matching the version for mylibname==mylibversion
Run Code Online (Sandbox Code Playgroud)

我尝试使用build_extwith options -L

pip install --global-option=build_ext --global-option="-L/directory/containing/whl/file/"
Run Code Online (Sandbox Code Playgroud)

-I

pip install --global-option=build_ext --global-option="-I/directory/containing/whl/file/"
Run Code Online (Sandbox Code Playgroud)

-b

pip install --global-option=build_ext --global-option="-b/directory/containing/whl/file/"
Run Code Online (Sandbox Code Playgroud)

但他们都没有工作。

编辑 1:

这是我的Dockerfile

FROM python:2.7.9
MAINTAINER Zeinab Abbasimazar
ADD myprojectdir .
RUN ls -la ${HOME}/myprojectdir/dependency
RUN pip --version
RUN pip install --global-option=build_ext --global-option="-L${HOME}/myprojectdir/dependency" mypackagename-mypackageversion
WORKDIR .
CMD python --version
Run Code Online (Sandbox Code Playgroud)

这是输出docker build -t myimagename . …

python pip docker dockerfile python-wheel

5
推荐指数
1
解决办法
5724
查看次数

whl不是此平台上支持的滚轮

我是python的新手,我正在尝试使用.whl文件安装一些模块/包.系统无法访问互联网,因此一切都是本地的.

  • 我正在运行RHEL 6.9 64bit 2.6.32-696.10.1.el6.x86_64
  • Python是2.7.12版本(以2.6为单位)

  • platform.architecture()('64bit','ELF')

  • 我正在运行pip 9.0.1

尝试安装numpy:

# /usr/local/bin/pip2.7 install numpy-1.13.3-cp27-cp27m-manylinux1_x86_64.whl
numpy-1.13.3-cp27-cp27m-manylinux1_x86_64.whl is not a supported wheel on this platform.
Run Code Online (Sandbox Code Playgroud)

那我错过了什么?

python pip python-2.7 python-wheel

5
推荐指数
1
解决办法
2605
查看次数

如何使用setup.py安装wheel样式的包

有没有办法,使用setup.py,安装python包作为wheel/pip风格的包(即dist-info)而不是setup.py默认情况下的egg安装(即egg-info)?

例如,如果我有一个带有setup.py脚本的python包,并且我运行以下命令,它将把包安装为egg.

> python setup.py install
Run Code Online (Sandbox Code Playgroud)

但是,我可以先构建一个轮子,然后使用pip将该轮子安装为wheel/dist-info类型的安装

> python setup.py bdist_wheel
> pip install ./dist/package-0.1-py2-none-any.whl
Run Code Online (Sandbox Code Playgroud)

有没有办法直接安装包作为wheel/dist-info安装setup.py?或者是同时使用两个步骤setuptoolspip必要吗?

python pip setuptools python-wheel python-packaging

5
推荐指数
1
解决办法
1071
查看次数

运行setup.py时,如何获取Python wheel的文件名?

我有一个使用以下命令创建Python轮子的构建过程:

python setup.py bdist_wheel
Run Code Online (Sandbox Code Playgroud)

构建过程可以在许多平台(Windows,Linux,py2,py3等)上运行,我想保留默认输出名称(例如mapscript-7.2-cp27-cp27m-win_amd64.whl)以上传到PyPI。

无论如何,是否有获取生成的车轮的文件名(例如mapscript-7.2-cp27-cp27m-win_amd64.whl)并保存到变量,以便稍后可以在脚本中安装车轮以进行测试?

理想的解决方案是跨平台。我当前的方法是尝试清除文件夹,列出所有文件,然后选择列表中的第一个(也是唯一一个)文件,但是,这似乎是一个非常棘手的解决方案。

python cross-platform setup.py python-wheel

5
推荐指数
3
解决办法
676
查看次数