【发布时间】:2016-11-10 14:28:38
【问题描述】:
我的 Python 应用程序可以正常安装,也可以使用 pip 在开发/可编辑模式下安装,如下所示:
virtualenv my_app
source my_app/bin/activate
pip install -e my_app
如何创建一个函数来自省我的 virtualenv 并检查我的应用程序是否在开发/可编辑模式下运行?
sys 模块中是否有任何“标志”?
动机:在开发模式和生产中具有不同的配置。
编辑:我比较 virtualenv 和 package 目录。
import os
import sys
import pkg_resources
main_pkg = 'my_app'
package_dir = pkg_resources.resource_filename(main_pkg, '__init__.py')
virtualenv_dir = os.path.dirname(os.path.dirname(sys.executable))
common_path = os.path.commonprefix([package_dir, virtualenv_dir])
is_dev_mode = not common_path.startswith(virtualenv_dir)
我测试 package_dir 是否是 virtualenv_dir 的子目录:如果不是子目录,则我处于开发模式。
EDIT2:
有没有更可靠的解决方案?
我想知道环境中是否没有数据/标志可以清楚地向我表明我的应用程序正在开发模式下运行。
如果另一个依赖也处于开发模式会发生什么?
【问题讨论】:
-
请注意,Python development mode 与此问题所问的内容不同。
标签: python