如何在Windows的Anaconda环境中部署python程序?

时间:2018-10-30 18:09:26

标签: python windows deployment anaconda

我正在尝试使用Anaconda和conda环境,以允许通过Windows上的(Anaconda)命令行运行用于数据获取*等的Python程序。设置是将Python程序安装在%PATH%或更合适的环境变量内的特定位置(从Github克隆)。

在另一个目录和特定conda环境中的Anaconda命令提示符下,我希望(本人和其他用户)能够运行python test.py <args>test.py <args>(两种解决方案均可接受)并具有系统范围的conda环境运行其Python执行该程序。 test.py可以/将设置适当的shebang设置。

现在python test.py在活动的conda环境中调用了正确的Python,但是找不到test.py程序,因为Python不会搜索%PATH%或类似的程序。 test.py可以执行某些操作(Windows不会抱怨找不到可执行文件,并且我一直在与文件关联进行交互以达到这一目的),但是似乎无法启动Python-一个简单的打印功能或引发语句,因为文件中的唯一条目什么都不做。

我尝试在Windows中设置文件关联,但这并没有改变任何内容。我已经将py.exe / pyw.exe复制到了Anaconda环境中,没有任何更改。

这是可以在Anaconda中完成的事情吗,还是我不得不依靠直接安装基本的Python并尝试在其中使用启动器机制?

请注意,我也打算将这些程序部署在Raspbian上,因此任何可以跨平台使用的解决方案,包括非Anaconda的解决方案,都将值得我付出更多的精力。

*这些程序在访问外部USB / GPIB /串行/以太网连接的实验室设备时大量使用了库软件包,并使用matplotlib,scipy等,因此需要可克隆的conda环境作为基本环境。

1 个答案:

答案 0 :(得分:0)

事实证明,正确答案很简单,但是很难找到很好的解释。这可能比我找到的其他答案更清楚:

pylauncher安装独立启动器,并将#!/usr/bin/env python shebang添加到脚本中。

这应该将.py文件注册到Python.File,并在适当的环境中找到您的Anaconda Python。如果您没有非Anaconda蟒蛇,它将使用Anaconda基本环境(这两个事实是我针对此问题而在各种其他答案中缺少的关键要素,包括{{1 }}。

如果您安装了python.org中的Python,则将使用独立的命令行外壳,默认情况下为Python 2.x,然后为Python3.x。使用python.org shebang,然后常规命令外壳将首先尝试使用#!/usr/bin/env python python,然后再使用Anaconda基本环境。 Anaconda提示将使用活动环境。 python.org#! /usr/bin/env python2将尝试仅使用python3个python,如果找不到,它们将失败。

python.org安装程序中安装Python 2.7(并让安装程序设置文件关联)将破坏pylauncher,并且重新安装不会对其进行修复。而是将python.org的默认值设置为Computer\HKEY_CLASSES_ROOT\Python.File\Shell\open\command以恢复到pylauncher设置(假设您使用"C:\WINDOWS\py.exe" "%L" %*软件包进行安装)。