[英]How to deploy python programs in Anaconda environments on Windows?
我正在嘗試使用Anaconda和conda環境來允許Python程序進行數據采集*等,以便從Windows上的(Anaconda)命令行運行。 設置是將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環境作為基本環境。
事實證明,正確的答案很簡單,但是很難找到很好的解釋。 這可能比我發現的其他答案更清楚:
從pylauncher安裝獨立的啟動器,然后將#!/usr/bin/env python
shebangs添加到腳本中。
這應該將.py文件注冊到Python.File並將在適當的環境中找到您的Anaconda Python。 如果您沒有非Anaconda python,它將使用Anaconda基本環境(這兩個事實是我針對此問題而在各種其他答案中缺少的關鍵要素,包括python.org
上的文檔)。
如果您安裝了python.org
的Python,則將使用獨立的命令行外殼,默認情況下為Python 2.x,然后為python.org
。 使用#!/usr/bin/env python
shebang,然后常規命令外殼將首先嘗試使用python.org
#!/usr/bin/env python
,然后使用Anaconda基本環境。 Anaconda提示將使用活動環境。 #! /usr/bin/env python2
#! /usr/bin/env python2
或python3
將僅嘗試使用python.org
,如果找不到,則將失敗。
從python.org
安裝程序安裝Python 2.7(並讓安裝程序設置文件關聯)將破壞pylauncher,並且重新安裝不會對其進行修復。 而是將Computer\\HKEY_CLASSES_ROOT\\Python.File\\Shell\\open\\command
默認值設置為"C:\\WINDOWS\\py.exe" "%L" %*
以恢復為pylauncher設置(假設您使用了launchwin.*
要安裝的軟件包)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.