這是我的問題,我正在試圖製作一個應用程序,它在安裝過程中複製數據文件。當我在做pip安裝時,安裝程序將幾個文件複製到一個目錄中。
現在我的問題是,當在虛擬環境中時,客戶期望的行爲是什麼 - 他是否希望爲每個virtualenv在虛擬環境目錄中創建所有創建的數據文件,或將所有文件複製到虛擬環境目錄。
運行應用程序時,將會創建新文件並將其存儲在這些複製文件中。什麼是理想的行爲,預計形成一個Python的virtualenv。常見還是孤立?virtualenv python中的預期行爲是什麼?
回答
virtualenv更多用於開發,不用於部署。有很多場景可以部署Python應用程序。但如果你更喜歡virtualenv的用法,並且你有共同的文件,它們可以在任何地方,恕我直言,因爲virtualenv不是真正的隔離,它只是Python路徑修改/修改機制(不像「chroot」),所以你決定在哪裏放置你的公用文件,甚至/usr/share/my-app-1.0/datafiles/。此外,virtualenv用於隔離二進制文件/腳本,但如果數據文件是靜態的,則可以根據需要放置它們。
在我看來,這取決於你創建的應用程序。 Virtualenv只是在同一臺機器上運行具有不同依賴關係的多個應用程序的方式。應用程序的數據是另一回事。
當我編寫web應用程序,這將是服務器上的單個應用程序,然後我會使用一個目錄。另一方面,當我編寫GUI應用程序時,事情會有所不同。如果數據是每個版本都必須更改的內容,但最終用戶不直接觸摸它(例如某些字典,翻譯等),我會將它放在應用程序包的dist-packages中(請參閱package data in setup.py)。另一方面,如果用戶可以「觸摸」並使用這些文件,那麼我會將它們放在用戶主目錄中。請參閱How to find the real user home directory using python?
我有兩種選擇,可以在virtualenv目錄內創建數據文件,也可以在用戶主目錄上創建數據文件。用戶可以根據需要完全添加和定製舊文件。在這種情況下,對於多個用戶,您是否認爲將所有數據文件保存在一個目錄中將是一個好主意? –
- 1. 預期的行爲是什麼?
- 2. _NET_WM_STATE_MODAL的預期行爲是什麼?
- 3. LocaleChangeInterceptor - 預期的行爲是什麼?
- 4. 爲什麼預期
- 5. CopyTo在IDictionary的上下文中的預期行爲是什麼?
- 6. @Configuration類中@PostConstruct的預期行爲是什麼?
- 7. drive.file作用域的更改feed的預期行爲是什麼?
- 8. 什麼是與SELECT *(SQL)AGG的功能預期的行爲
- 9. 空的CSS聲明的預期行爲是什麼?
- 10. 是什麼「';'預期「意思?
- 11. 使用grain.present的預期行爲是什麼?
- 12. TCP連接丟失時的預期行爲是什麼?
- 13. 相對最大寬度的預期行爲是什麼
- 14. 使用'position:absolute`和`float:left`時的預期行爲是什麼?
- 15. Facebook登錄的預期行爲是什麼?
- 16. 該用戶決定的預期行爲應該是什麼?
- 17. 爲什麼不是pip下載virtualenv?
- 18. TinyMCE 4.5幫助按鈕? - 預期行爲是什麼
- 19. 爲什麼for循環在Python中不按預期打印?
- 20. python virtualenv:爲什麼我仍然可以在clean/new virtualenv中導入舊模塊
- 21. 爲什麼我的if語句的行爲不如預期
- 22. amq.topic的預期用途是什麼?
- 23. AsyncContext.start()的預期用例是什麼?
- 24. ZeroMQ的預期性能是什麼?
- 25. scapy預期的丟包是什麼?
- 26. QWebView :: setHtml的預期編碼是什麼?
- 27. 爲什麼std :: chrono :: time_point的行爲不如預期?
- 28. 爲什麼動態綁定的行爲不如預期?
- 29. 爲什麼readf的行爲不如預期?
- 30. 爲什麼TileUpdater.StartPeriodicUpdate的行爲不如預期?
虛擬環境通常被解釋爲沙箱環境,您無法到達室外。 – poke