Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
运行python脚本的最佳实践是什么?_Python_Python 3.x_Automation - Fatal编程技术网

运行python脚本的最佳实践是什么?

运行python脚本的最佳实践是什么?,python,python-3.x,automation,Python,Python 3.x,Automation,我正在开发一些我计划在实验室中使用的脚本。目前,我只在我正在使用的工作站(开发工作站)上本地安装了Python和所有必需的模块 我希望能够运行通过我的每个实验室工作站开发的脚本 这样做的最佳实践是什么 我是否需要在所有工作站中安装相同的环境(当然除了IDE)?如果是,那么推荐的方法是什么 顺便问一下,主要建议您从命令行屏幕(Windows)运行这些脚本,还是有其他优雅的方法来运行这些脚本?您应该打包这些脚本: 并使用包中定义脚本的内置方法之一: 这将帮助您维护脚本。您可以对软件包进行版本设置

我正在开发一些我计划在实验室中使用的脚本。目前,我只在我正在使用的工作站(开发工作站)上本地安装了Python和所有必需的模块

我希望能够运行通过我的每个实验室工作站开发的脚本

这样做的最佳实践是什么

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


顺便问一下,主要建议您从命令行屏幕(Windows)运行这些脚本,还是有其他优雅的方法来运行这些脚本?

您应该打包这些脚本:

并使用包中定义脚本的内置方法之一:

这将帮助您维护脚本。您可以对软件包进行版本设置,这非常有用,因为您将有bug(我们都编写bug),并且您将在更新的版本中修复它们。此外,安装/升级软件包比管理几个独立的脚本要容易得多

关于编写脚本时的一些“最佳实践”,我建议:

1) 为代码编写单元测试:

2) 不要把任何逻辑放在你的支票下面。如果有的话,只需将所有逻辑封装在一个名为main的函数中,并在您的_name__检查下调用它

坏的


如果希望在多台计算机上运行单个脚本而不在任何地方安装Python,则可以使用py2exe、cx\u Freeze或PyInstall将脚本“编译”为.exe。“编译”实际上将Python和库打包到生成的.exe或附带文件中


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

@moshe,如果您在所有这些机器上都有管理员权限,我建议您安装现在的行业标准Python发行版。它附带了一个非常宝贵的工具,用于编写脚本、保存和共享代码,以及其他方便的工具,如可视化数据


或者,您可以简单地启动一个实例,按照您想要的方式设置Python,然后在实验室机器上使用shell以ssh方式连接到该实例中。如果您使用的是共享计算机,其他人可以在其中安装软件并可能破坏您的环境设置,那么这可能是首选方法。

这些脚本通常是使用
python
命令运行的?有多少台计算机需要此设置?什么操作系统?你会如何想象自己运行它们?这些信息非常有用,因为我们不知道你的脚本是否是任何框架的一部分,或者它们是否是独立的脚本。我至少还有3个站点。它们都是Windows 7或10工作站。它们目前是独立的,但我已经看到它们将如何成为py.test frameworkLazy方法的一部分:只需将git repo拉到所有计算机上。稍微花哨一点:在一台if计算机上安装
devpi
,并将其用作包管理器,这样您就可以在其他具有
pip
的计算机上安装软件包。打包我的脚本只需要工作站安装Python即可。对吗?不,您需要在所有机器上安装Python。您可以使用该软件包解析脚本中的任何依赖模块,如果这些计算机可以访问internet,它们将自动下载和安装:
  if __name__ == '__main__':
       foo = thing()
       args = get_args()
       try:
           blah()
       except DerpError:
           handle_derp()
if __name__ == '__main__':
    main()