Jel*_*teF 7 python pypi python-2.7 python-3.x
我在Python 3中编写了一个库,最近出现了一个拉取请求,增加了对Python 2.7的支持.拉请求是这样的:https://github.com/JelteF/PyLaTeX/pull/9.
它基本上做的是添加一些import修复并使超级调用显式.我对此有不同的感受,因为我为python 3选择的一个重要原因是更清晰的语法,这使得它通过使用'丑陋'语法来兼容.但是,我确实喜欢使用Python 2的人也可以使用该库.
这就是我为python2和python3考虑单独代码库的原因.有没有办法设置PyPi,以便它使用不同版本的Python单独的代码库?使用单独的分支将是更可取的,因为在这种情况下合并新的更改将是容易的.
或者我有一些更好的选择吗?
我也刚刚发布了 Python 2.7 的库。我的方法是使用3to2将 Python 3 代码编译为 2.7 代码,然后将其上传到 PyPi。
mkdir -p python2_source
cp -R pylatex tests examples python2_source
3to2 python2_source -wn -f collections -f all
Run Code Online (Sandbox Code Playgroud)
您还必须添加python2_source到MANIFEST.in,因此它将出现在您的分发文件中。如果使用 Python 2.7 完成设置,那么我会setup.py从文件夹中安装一小段代码。python2_source
if sys.version_info[0] == 3:
source_dir = '.'
else:
source_dir = 'python2_source'
Run Code Online (Sandbox Code Playgroud)
然后package_dir={'': source_dir}在实际setup调用中。