2017-05-29 55 views
0

這是我的問題,我正在試圖製作一個應用程序,它在安裝過程中複製數據文件。當我在做pip安裝時,安裝程​​序將幾個文件複製到一個目錄中。

現在我的問題是,當在虛擬環境中時,客戶期望的行爲是什麼 - 他是否希望爲每個virtualenv在虛擬環境目錄中創建所有創建的數據文件,或將所有文件複製到虛擬環境目錄。

運行應用程序時,將會創建新文件並將其存儲在這些複製文件中。什麼是理想的行爲,預計形成一個Python的virtualenv。常見還是孤立?virtualenv python中的預期行爲是什麼?

+0

虛擬環境通常被解釋爲沙箱環境,您無法到達室外。 – poke

回答

0

virtualenv更多用於開發,不用於部署。有很多場景可以部署Python應用程序。但如果你更喜歡virtualenv的用法,並且你有共同的文件,它們可以在任何地方,恕我直言,因爲virtualenv不是真正的隔離,它只是Python路徑修改/修改機制(不像「chroot」),所以你決定在哪裏放置你的公用文件,甚至/usr/share/my-app-1.0/datafiles/。此外,virtualenv用於隔離二進制文件/腳本,但如果數據文件是靜態的,則可以根據需要放置它們。

0

在我看來,這取決於你創建的應用程序。 Virtualenv只是在同一臺機器上運行具有不同依賴關係的多個應用程序的方式。應用程序的數據是另一回事。

當我編寫web應用程序,這將是服務器上的單個應用程序,然後我會使用一個目錄。另一方面,當我編寫GUI應用程序時,事情會有所不同。如果數據是每個版本都必須更改的內容,但最終用戶不直接觸摸它(例如某些字典,翻譯等),我會將它放在應用程序包的dist-packages中(請參閱package data in setup.py)。另一方面,如果用戶可以「觸摸」並使用這些文件,那麼我會將它們放在用戶主目錄中。請參閱How to find the real user home directory using python?

+0

我有兩種選擇,可以在virtualenv目錄內創建數據文件,也可以在用戶主目錄上創建數據文件。用戶可以根據需要完全添加和定製舊文件。在這種情況下,對於多個用戶,您是否認爲將所有數據文件保存在一個目錄中將是一個好主意? –

相關問題