我正在开发一些我打算在我的LAB中使用的脚本。目前,我只在本地工作站(开发工作站)安装了Python和所有必需的模块。运行python脚本的最佳做法是什么?
我希望能够运行我通过每个LAB工作站开发的脚本。
这样做的最佳做法是什么?
我需要在所有工作站中安装除当然IDE之外的相同环境吗?如果是的话,那么推荐的方法是什么?
顺便说一下,它主要是推荐从命令行屏幕(Windows)运行这些脚本还是有其他任何优雅的方式来做到这一点?
我正在开发一些我打算在我的LAB中使用的脚本。目前,我只在本地工作站(开发工作站)安装了Python和所有必需的模块。运行python脚本的最佳做法是什么?
我希望能够运行我通过每个LAB工作站开发的脚本。
这样做的最佳做法是什么?
我需要在所有工作站中安装除当然IDE之外的相同环境吗?如果是的话,那么推荐的方法是什么?
顺便说一下,它主要是推荐从命令行屏幕(Windows)运行这些脚本还是有其他任何优雅的方式来做到这一点?
你应该打包这些脚本:
https://python-packaging.readthedocs.io/en/latest/
和使用包中定义的脚本的内置方法之一:
http://python-packaging.readthedocs.io/en/latest/command-line-scripts.html?highlight=scripts
这将帮助你保持你的脚本。你可以对这个软件包进行版本管理,因为你会有错误(我们都写错误),你会修复它们的一个新版本。而且,安装/升级软件包比管理几个独立的脚本要容易得多。
至于一些“最佳实践”写剧本的时候,我建议:
1)编写单元测试代码:http://python-guide-pt-br.readthedocs.io/en/latest/writing/tests/
2)不要把任何逻辑的__name__检查下。如果有的话,只需将所有的逻辑封装在一个名为main的函数中,然后在__name__检查下调用它。
坏
if __name__ == '__main__':
foo = thing()
args = get_args()
try:
blah()
except DerpError:
handle_derp()
好
if __name__ == '__main__':
main()
打包我的脚本只需要站点安装Python。对 ? –
不,您需要在所有机器上安装Python。 您可以使用该软件包来解析脚本中的任何相关模块,并且如果这些机器可以访问互联网,它们将自动下载并安装:http://python-packaging.readthedocs.io/en/latest /dependencies.html?highlight=requirements – willnx
如果你想运行在多台计算机一个脚本没有安装Python随处都可以“编译”的脚本中使用到的.exe py2exe,cx_Freeze或PyInstall。 “编译”实际上将Python和库打包到生成的.exe或伴随文件中。
但是,如果你打算运行很多Python脚本,你最好在任何地方安装Python,并将脚本和库作为Python包(蛋或轮子)分发。
@moshe,如果您对所有这些机器拥有管理员权限,我建议安装现在行业标准的Anaconda发行版python。它附带Jupyter Notebook,这是一个用于编写脚本,保存和共享代码的宝贵工具,以及可视化数据等其他方便的工具。或者,您可以简单地启动一个Amazon AWS free tier Linux实例,以您想要的方式设置Python,然后在您的实验室计算机上使用shell进入该实例。如果您使用共享机器,其他人可以安装软件并可能破坏您的环境设置,则这可能是首选的方法。
这些是你通常会用'python'命令运行的脚本吗?有多少台电脑需要这种设置?什么操作系统? – Grimmy
你会如何想象自己运行它们?该信息可能非常有用,因为我们不知道您的脚本是否是任何框架的一部分,或者它们是否是独立脚本。 – Grimmy
我至少还有3个电台。所有这些都是Windows 7或10台。他们目前是独立的,但我已经可以看到他们将如何成为py.test框架的一部分 –