2017-07-16 108 views
2

我正在开发一些我打算在我的LAB中使用的脚本。目前,我只在本地工作站(开发工作站)安装了Python和所有必需的模块。运行python脚本的最佳做法是什么?

我希望能够运行我通过每个LAB工作站开发的脚本。

这样做的最佳做法是什么?

我需要在所有工作站中安装除当然IDE之外的相同环境吗?如果是的话,那么推荐的方法是什么?

顺便说一下,它主要是推荐从命令行屏幕(Windows)运行这些脚本还是有其他任何优雅的方式来做到这一点?

+0

这些是你通常会用'python'命令运行的脚本吗?有多少台电脑需要这种设置?什么操作系统? – Grimmy

+0

你会如何想象自己运行它们?该信息可能非常有用,因为我们不知道您的脚本是否是任何框架的一部分,或者它们是否是独立脚本。 – Grimmy

+0

我至少还有3个电台。所有这些都是Windows 7或10台。他们目前是独立的,但我已经可以看到他们将如何成为py.test框架的一部分 –

回答

2

你应该打包这些脚本:

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() 
+0

打包我的脚本只需要站点安装Python。对 ? –

+0

不,您需要在所有机器上安装Python。 您可以使用该软件包来解析脚本中的任何相关模块,并且如果这些机器可以访问互联网,它们将自动下载并安装:http://python-packaging.readthedocs.io/en/latest /dependencies.html?highlight=requirements – willnx

0

如果你想运行在多台计算机一个脚本没有安装Python随处都可以“编译”的脚本中使用到的.exe py2exe,cx_Freeze或PyInstall。 “编译”实际上将Python和库打包到生成的.exe或伴随文件中。

但是,如果你打算运行很多Python脚本,你最好在任何地方安装Python,并将脚本和库作为Python包(蛋或轮子)分发。

0

@moshe,如果您对所有这些机器拥有管理员权限,我建议安装现在行业标准的Anaconda发行版python。它附带Jupyter Notebook,这是一个用于编写脚本,保存和共享代码的宝贵工具,以及可视化数据等其他方便的工具。或者,您可以简单地启动一个Amazon AWS free tier Linux实例,以您想要的方式设置Python,然后在您的实验室计算机上使用shell进入该实例。如果您使用共享机器,其他人可以安装软件并可能破坏您的环境设置,则这可能是首选的方法。

相关问题