标签: python-wheel

为什么`virtualenv`找不到`pkg_resources`?

我正在尝试在Ubuntu中使用virtualenv来安装本地虚拟Python环境.当我运行shell命令时:

$ virtualenv ./virt_python
Run Code Online (Sandbox Code Playgroud)

它抛出一个无法导入的异常pkg_resources.但是当我打开一个Python shell并且from pkg_resources import load_entry_point运行正常时.作为参考,完整的堆栈跟踪如下.

$ virtualenv ./virt_python
New python executable in ./virt_python/bin/python
Installing setuptools............done.
Installing pip.......
  Complete output from command /home/rpsharp/local/...hon/bin/easy_install /usr/local/lib/pytho...pport/pip-1.1.tar.gz:
  Traceback (most recent call last):
  File "/home/rpsharp/local/workspace/invest-natcap.invest-3/virt_python/bin/easy_install", line 5, in <module>
    from pkg_resources import load_entry_point
ImportError: No module named pkg_resources
----------------------------------------
...Installing pip...done.
Traceback (most recent call last):
  File "/usr/local/bin/virtualenv", line 9, in <module>
    load_entry_point('virtualenv==1.7.1.2', 'console_scripts', 'virtualenv')()
  File "/usr/local/lib/python2.6/dist-packages/virtualenv.py", line 928, in main
    never_download=options.never_download)
  File "/usr/local/lib/python2.6/dist-packages/virtualenv.py", line 1042, in …
Run Code Online (Sandbox Code Playgroud)

python pkg-resources virtualenv python-wheel

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

如何通过pip下载跨平台车轮?

我习惯于使用Pip预先下载软件包,然后将它们复制到目标机器进行部署.随着新推出的Python Wheels,我被迫"pip ... --no-use-wheel",因为一些下载的软件包是特定于平台的(我正在开发OSX并部署到Debian)并且不会安装在目标机器上.有没有办法为目标平台(或平台无关)下载车轮?

python pip setuptools python-wheel

9
推荐指数
2
解决办法
6061
查看次数

如何为Python 2和3上传通用Python轮?

我在PyPi上有一个软件包,在准备一个新版本时,我构建了源代码分发,构建了轮子并上传,所有这些都使用了setuptools.

但是,我发现它只上传了upload命令(pythonpython3)中使用的Python版本的轮子.

以下是我要采取的步骤:

python3 setup.py sdist
python3 setup.py bdist_wheel --universal
python3 setup.py sdist bdist_wheel upload
Run Code Online (Sandbox Code Playgroud)

根据Python包装用户指南:

"Universal Wheels"是纯Python的轮子(即不包含编译的扩展)并支持Python 2和3

所以这似乎对我来说是正确的.

在轮子构建步骤之后,我验证了轮子是否已构建并具有文件名格式PACKAGE-VERSION-py2.py3-none-any.whl,dist但是当我运行上载时python3 setup.py sdist bdist_wheel upload,它会创建PACKAGE-VERSION-py3-none-any.whl并上传它.

如果我运行python setup.py sdist bdist_wheel upload它也会执行相同的操作并上传Python 2-only.

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

9
推荐指数
1
解决办法
4141
查看次数

轮文件:protobuf-3.4.0-py2.py3-none-any.whl中"none-any"的含义是什么

我使用pip来获取nwhy的.whl文件

pip wheel --wheel-dir=./ numpy
Run Code Online (Sandbox Code Playgroud)

我得到了 numpy-1.13.3-cp27-cp27mu-linux_armv7l.whl因为我使用的是ARM平台,但是当运行pip for protobuf时

pip wheel --wheel-dir=./ protobuf
Run Code Online (Sandbox Code Playgroud)

我有 protobuf-3.4.0-py2.py3-none-any.whl

所以,为什么不linux_armv7l喜欢numpy的情况,我没有改变机器并搜索那个差异,但没有信息.

谢谢你的建议 .

pip protocol-buffers armv7 python-wheel

9
推荐指数
2
解决办法
2504
查看次数

使用pip时如何避免重建现有车轮?

有了pip 1.5.X,我们可以使用pip wheel来构建和缓存封装的车轮,然后使用--use-wheel具有pip install从缓存的车轮安装.

我正在尝试在环境设置脚本中使用此功能.这就是我正在尝试的:

pip wheel --wheel-dir=/tmp Cython==0.19.2
pip install Cython==0.19.2 --use-wheel --no-index --find-links=/tmp
Run Code Online (Sandbox Code Playgroud)

我希望pip wheel在构建它之前检查轮子是否已经存在.但它似乎忽略了现有的轮子并且每次都建立.

有可能避免这种情况吗?

python pip python-wheel

8
推荐指数
1
解决办法
1391
查看次数

没有setup.py为install_requires开发使用轮?

我的印象是(使用setuptools):

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

安装所需的软件包(在install_requires中指定)时不会使用轮子.

问题:

  1. 我的印象是否正确?
  2. 有没有办法强迫它使用轮子?

我在谈论这个特殊的安装脚本.

python pip setuptools python-3.x python-wheel

8
推荐指数
1
解决办法
1056
查看次数

从 python bdist_egg 或 bdist_wheel 中排除单个源文件

背景:我有一个负责安全的源文件。其中有魔术键和特定算法。

是否可以从 python 蛋或轮包中删除这个单一的源文件?

我已经完成了使用 egg 命令只发送二进制文件。

python setup.py bdist_egg --exclude-source-files
Run Code Online (Sandbox Code Playgroud)

编辑项目结构:

??? setup.py
??? src
|   ??? __init__.py
|   ??? file1.py
|   ??? file2.py
|   ??? file_to_exclude.py
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助!

egg setuptools python-wheel

8
推荐指数
1
解决办法
2274
查看次数

来自私有 github 仓库的 pip install wheel 版本

我已经将我的私人回购打包成一个轮子。有不同版本的轮子。是否可以从命令行使用 pip 和通过 requirements.txt 文件安装特定轮版本的 repo?据我所知,pip 文档中没有提到此功能。

我可以使用 Github 令牌从私有存储库安装 pip 包,没有问题。

pip install git+https://$GITHUB_TOKEN@github.com/[username]/[reponame].git

我还可以安装带有特定提交的私有 pip 包:

pip install git+https://$GITHUB_TOKEN@github.com/[username]/[reponame].git@[commit_sha]

python git github python-wheel

8
推荐指数
1
解决办法
4268
查看次数

如何从单个 setup.py 构建多个轮文件?

在我的项目中,我有一个 setup.py 文件,它使用以下命名空间模式构建多个模块:

from setuptools import setup

setup(name="testmoduleserver",
      packages=["testmodule.server","testmodule.shared"],
      namespace_packages=["testmodule"])

setup(name="testmoduleclient",
      packages=["testmodule.client","testmodule.shared"],
      namespace_packages=["testmodule"])
Run Code Online (Sandbox Code Playgroud)

我正在尝试为这两个包构建轮文件。但是,当我这样做时:

python -m pip wheel .
Run Code Online (Sandbox Code Playgroud)

它只为定义之一构建包。

为什么只构建一个包?

python pip python-wheel python-3.6

8
推荐指数
1
解决办法
3560
查看次数

Python Poetry:如何指定特定于平台的依赖项替代方案?

一些背景: 我正在从事的项目使用python-ldap库。由于我们是一个混合操作系统开发团队(一些使用 Linux,一些使用 macOS 和一些 Windows),我试图让项目在所有环境中构建。不幸的是,python-ldapWindows 没有正式支持,但有由 Christoph Gohlke 维护的非官方轮子。我已经测试了轮文件,它工作正常。

问题:我如何告诉 Poetry 在 Windows 上使用轮子以及python-ldap在 Linux 和 macOS 上使用官方包?

我尝试了多种方法,包括使用多个约束依赖项和标记

python-ldap = [
    { markers = "sys_platform == 'linux'", version = "*" },
    { markers = "sys_platform == 'win32'", path="lib/python_ldap-3.2.0-cp36-cp36m-win_amd64.whl" }
Run Code Online (Sandbox Code Playgroud)

......但是,从判断poetry.lock文件,似乎再标记合并,只是确定是否库应安装在所有

[[package]]
category = "main"
description = "Python modules for implementing LDAP clients"
marker = "sys_platform == \"linux\" or sys_platform == \"win32\""
name = …
Run Code Online (Sandbox Code Playgroud)

python python-ldap python-wheel python-poetry

8
推荐指数
2
解决办法
1672
查看次数