0

这是我的问题,我正在尝试制作一个在设置过程中复制数据文件的应用程序。当我执行 pip install 时,安装程​​序会将一些文件复制到一个目录中。

现在我的问题是,当在虚拟环境中时,客户期望的行为是什么 - 他是希望在每个 virtualenv 的虚拟环境目录中创建所有数据文件,还是将所有文件复制到虚拟环境目录之外的公共目录中.

在运行应用程序时,将创建新文件并将其与这些复制的文件一起存储。python virtualenv 所期望的理想行为是什么。共同的还是孤立的?

4

2 回答 2

0

virtualenv 更多的是用于开发,而不是用于部署。部署 Python 应用程序的场景有很多。但是如果你更喜欢 virtualenv 的使用并且你有公共文件,它们可以在任何地方恕我直言,因为 virtualenv 不是真正的隔离,它只是 Python 路径修改/修改机制(不像“chroot”),所以你决定在哪里放置你的公共文件,甚至 /usr/share/my-app-1.0/datafiles/。此外,virtualenv 用于隔离二进制文件/脚本,但如果数据文件是静态的,您可以根据需要放置它们。

于 2017-05-29T12:27:32.793 回答
0

在我看来,这取决于您创建的应用程序。Virtualenv 只是在同一台机器上运行多个具有不同依赖项的应用程序的方式。来自应用程序的数据是另一回事。

当我编写 Web 应用程序时,这将是服务器上的单个应用程序,然后我将使用一个目录。

另一方面,当我编写 GUI 应用程序时,情况会有所不同。如果数据是每个版本都必须更改的东西,但最终用户不直接接触它(例如一些字典、翻译等),我会将它放在应用程序包中的 dist-packages 中(请参阅setup.py 中的包数据) . 另一方面,如果用户可以“触摸”并使用这些文件,那么我会将它们放在用户主目录中。请参阅如何使用 python 找到真正的用户主目录?

于 2017-05-29T12:28:53.647 回答