记录脚本与 python2 和 python3 以及特定的 matplotlib 一起工作
Documenting that a script works with python2 and python3 and a particular matplotlib
问候堆栈溢出!
我在一个研究环境中工作,我可能会使用 10 台不同版本的 Python and/or matplotlib、numpy 等计算机。
都是 Linux,但有些人可能会在 Windows 上使用我的代码,这可能会增加更多的复杂性。
我的许多 python 脚本都适用于 py2.x 和 py3.x-- 这可能是一个目标,但我有遗留的 2.X 代码不会不会很快被移植。 我想要一种方法来表明代码是否已经在 Python2 和 Python3 上进行了测试,或者断言代码仅适用于 Python2(或某些 matplotlibs)。
我可以这样做:
assert(float(sys.version[0:3])<=2.8)
>>> import matplotlib as mpl
>>> assert(float(mpl.__version__[0:3])>=2.3)
Traceback (most recent call last):
AssertionError
我在这个网站上浏览了一下,发现了这个相关的 post
参考文献 post 中的那个人只是被告知不要担心。 "Python3.4 just works with matplotlib"。我意识到 Anaconda 应该可以帮助解决这些问题——我正在使用它。我来自更早的时代,那时大多数多个代码库并不能正常工作。
欢迎推荐方法。你喜欢断言吗?有没有更好的
工具还是技术?
谢谢!
assert
如果不合适会抛出错误,并使您的代码无法用于您未测试的版本,即使它可以工作。如果您的代码没有对计算机造成任何不良影响(例如擦除磁盘、损坏的文件)或系统,如果它无法正确 运行,那么它可能不会,因为您在研究环境中工作,那么你应该让它运行。如果遇到错误,它就会停止。如果没有,它会 运行 开启。但是,您应该在文件的头部包含一个文档字符串,其中包含您测试过的版本,就像这样,
"""
Tested with
python <= 2.8,
matplotlib >= 2.3
...
... rest of docstring ...
"""
... rest of your code ...
问候堆栈溢出!
我在一个研究环境中工作,我可能会使用 10 台不同版本的 Python and/or matplotlib、numpy 等计算机。 都是 Linux,但有些人可能会在 Windows 上使用我的代码,这可能会增加更多的复杂性。
我的许多 python 脚本都适用于 py2.x 和 py3.x-- 这可能是一个目标,但我有遗留的 2.X 代码不会不会很快被移植。 我想要一种方法来表明代码是否已经在 Python2 和 Python3 上进行了测试,或者断言代码仅适用于 Python2(或某些 matplotlibs)。
我可以这样做:
assert(float(sys.version[0:3])<=2.8)
>>> import matplotlib as mpl
>>> assert(float(mpl.__version__[0:3])>=2.3)
Traceback (most recent call last):
AssertionError
我在这个网站上浏览了一下,发现了这个相关的 post
欢迎推荐方法。你喜欢断言吗?有没有更好的 工具还是技术?
谢谢!
assert
如果不合适会抛出错误,并使您的代码无法用于您未测试的版本,即使它可以工作。如果您的代码没有对计算机造成任何不良影响(例如擦除磁盘、损坏的文件)或系统,如果它无法正确 运行,那么它可能不会,因为您在研究环境中工作,那么你应该让它运行。如果遇到错误,它就会停止。如果没有,它会 运行 开启。但是,您应该在文件的头部包含一个文档字符串,其中包含您测试过的版本,就像这样,
"""
Tested with
python <= 2.8,
matplotlib >= 2.3
...
... rest of docstring ...
"""
... rest of your code ...