- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有一个依赖于 subx 的库 ( subprocess32) . subprocess32 库是 Python2.7 的反向端口,并提供超时 kwarg。
我的库需要超时 kwarg。
仅当目标平台是 Python2.x 时,我才需要 subprocess32。
我应该如何在我的项目中定义依赖关系?
如果我通过“install_requires”(setup.py)定义对 subprocess32
的依赖并且我在 python3 virtualenv 中,我会收到此错误消息:
===> pip install -e git+https://github.com/guettli/subx.git#egg=subx
Obtaining subx from git+https://github.com/guettli/subx.git#egg=subx
Cloning https://github.com/guettli/subx.git to ./src/subx
Collecting subprocess32 (from subx)
Using cached subprocess32-3.2.7.tar.gz
Complete output from command python setup.py egg_info:
This backport is for Python 2.x only.
----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-lju3nl1y/subprocess32/
最佳答案
有一种声明方式,但据我所知,它需要或多或少最新版本的 setuptools
(如果我没看错 release notes,您至少需要 20.2 版本)。您将在下面看到的称为环境标记,在 PEP 508 中指定。 ,通读它以获得可用标记的完整列表,并根据需要更好地理解标记语法。
对于 python 版本,让我们以您的包为例:您有 subprocess32
依赖项,应该安装在 python2.X
环境中。像这样增强你的依赖性:
install_requires=[
'subprocess32; python_version<"3"',
]
使用 python2.7
安装包 subx
现在产生:
Processing ./dist/subx-2017.8.0-py2-none-any.whl
Collecting subprocess32; python_version < "3" (from subx==2017.8.0)
Installing collected packages: subprocess32, subx
Successfully installed subprocess32-3.2.7 subx-2017.8.0
如果您使用 python3.X
安装它,输出将是:
Processing ./dist/subx-2017.8.0-py3-none-any.whl
Installing collected packages: subx
Successfully installed subx-2017.8.0
请注意 subprocess32
的安装将被跳过。
另一个常见示例是声明特定于平台的依赖项:我有一个项目需要在 Linux 上安装 auditwheel
并在 MacOS 上安装 delocate
。我这样声明依赖关系:
install_requires=[
...
'auditwheel==1.7.0; "linux" in sys_platform',
'delocate==0.7.1; "darwin" == sys_platform',
]
请注意,如果您没有专门针对任何主要的 python 版本,则需要对 Linux 进行此检查,因为:
$ python2 -c "import sys; print sys.platform"
linux2
但是
$ python3 -c "import sys; print sys.platform"
linux
例如,如果您的包只适用于 python2.X
,您可以使用检查 "linux2"== sys.platform
。这将使您的依赖项只能通过 python2.X
安装。
关于python - 依赖管理 : subprocess32 needed for Python2. 7,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47098185/
我想知道,如果我的函数没有相似的名称,我是否需要使用命名空间? 另外我无法掌握从特定文件夹导入所有命名空间的方法... 最佳答案 I'm wondering, that if my functions
我运行 2to3 -f all -f idioms -f buffer -f set_literal -f ws_comma foo.py 输出: RefactoringTool: No change
我对 RoR 还是很陌生,我正在尝试使用 button_to delete 按钮删除一个对象。但是,使用我编写的代码,当我尝试将它获取到 destroy 方法的/needs/:id 时,它会将我带到/
当我运行代码时,我在 DEBUG Console 中发现了这个错误如下图所示错误: Restarted application in 2,804ms. [38;5;248m════════ Excep
我有一个实现 __dir__ 方法的类。但是,我并不完全确定 dir API 的一些细节。 A:__dir__ 是否真的需要返回一个列表?我的实现是使用 set 来避免两次列出属性,我需要在返回之前将
我正在尝试执行对非官方 Instagram API python 库的调用,在我修复了几个需要依赖项的错误之后,我被困在了这个错误上。 File "C:\Users\Pablo\Desktop\tx
我正在使用 SingleChildScrollView 和 Column 来显示滑动条和 gridview。 如果我在我的专栏中使用一些其他小部件,如文本、图像,应用程序显示正常。但是我的swiper
我正在尝试卸载 zsh 插件 (macos),我修改了 .zshrc 文件并从 中删除了 macos >plugin 列表,并删除路径 ~/.oh-my-zsh/plugins 中的 macos 文件
我正在尝试卸载 zsh 插件 (macos),我修改了 .zshrc 文件并从 中删除了 macos >plugin 列表,并删除路径 ~/.oh-my-zsh/plugins 中的 macos 文件
Exception caught by rendering library ═════════════════════════════════ RenderBox was not laid out:
我对 Python 很陌生。我正在试用 threading模块。我遇到了 Event对象。 事件对象有wait set clear职能。我了解等待、设置和清除正在做什么。但是我不太明白为什么会有一个单
我需要在 SQL Server 的 sql 查询中转义 [ select * from sometable where name like '[something]'; 我实际上正在寻找某个东西之前的
我的要求是这样的: 我在数据库和时区中保存以毫秒为单位的时间。例如,以毫秒为单位的时间是 1223123123232长时区是 Asia/Calcutta 。我必须将其转换为 Africa/Asmara
我的表中有两个整数列,其中第一列填充了一些随机数,第二列为空。现在是否可以将第一列按升序排序,同时按降序排序并显示为第二列?我有下表的示例。 初始表: col1 col2 5 7 3 9
我正在使用 Instruments 检查我的应用程序的内存泄漏并向我展示: NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"ChangeAcc
我有课 class Person { // some other fields for this object std::vector relatives; } 然后是一个返回 Person
在下面的代码中,为什么需要 .page-wrap:after? 理论上,如果没有这个,粘性页脚不应该工作吗?为什么不呢? * { margin: 0; } html, body { heigh
关闭。此题需要details or clarity 。目前不接受答案。 想要改进这个问题吗?通过 editing this post 添加详细信息并澄清问题. 已关闭 8 年前。 Improve th
我看过维基百科的图数据库,还是不明白。 什么是“无索引邻接”? 可不可以理解为“不是把主键存到其他表的行,而是直接存这些行的物理位置” 最佳答案 当您的数据可以表示为图形( map 上的路线、一些树等
我是 AngularJS 的新手,但我真的很喜欢 AngularJS 的工作方式,所以我想将它部署为我的 Google 云端点后端的客户端。然后我立即遇到两个问题: 1、放在哪里myCallback
我是一名优秀的程序员,十分优秀!