Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
以编程方式确定python模块是已安装还是处于开发模式_Python_Packaging - Fatal编程技术网

以编程方式确定python模块是已安装还是处于开发模式

以编程方式确定python模块是已安装还是处于开发模式,python,packaging,Python,Packaging,我倾向于在“setup.py develop”模式下开发我的应用程序。我想配置自动切换到生产模式时,程序得到'setup.py安装'ed 拙劣的黑客可以做到这一点,比如检查安装目录是否包含“setup.py”,但我想知道pkg_资源是否能帮我做到这一点。在开发机器上设置一个环境变量,然后测试os.environ['development_mode'](或您选择的设置)在您的开发机器上设置一个环境变量,并测试os.environ['development\u mode'](或您选择的设置)确实是这

我倾向于在“setup.py develop”模式下开发我的应用程序。我想配置自动切换到生产模式时,程序得到'setup.py安装'ed


拙劣的黑客可以做到这一点,比如检查安装目录是否包含“setup.py”,但我想知道pkg_资源是否能帮我做到这一点。

在开发机器上设置一个环境变量,然后测试
os.environ['development_mode']
(或您选择的设置)

在您的开发机器上设置一个环境变量,并测试
os.environ['development\u mode']
(或您选择的设置)

确实是这样:

的确如此:


另一个选项是使用。这样,您的开发环境就可以与生产环境完全相同。在我看来,Setuptools是一个非常重要的依赖对象。

另一个选项是使用。这样,您的开发环境就可以与生产环境完全相同。实际上,Setuptools是一个非常重要的依赖对象我的意见。

也许吧。虽然通过pkg_资源获取这些信息似乎并不难。不,但基于安装方式的行为通常是个坏主意。如果你想调试一段只在开发模式之外运行的特定代码,你必须编辑代码或重新安装包nEnvironment设置,您只需设置变量。也许。虽然通过pkg_resources获取此信息似乎不难。不,但基于安装方式的行为通常仍然是一个坏主意。如果您想调试仅在开发模式之外运行的特定代码,您必须编辑代码或rei使用环境设置,您只需设置变量。
dist = pkg_resources.get_distribution('your-app')
if dist.precedence == pkg_resources.DEVELOP_DIST:
    # package is in development mode
    ...