如何让python程序监听环境变量?

时间:2014-02-22 05:55:45

标签: python environment-variables virtualenv pip pypi

很抱歉,如果这个问题不清楚。

我在python中编写了一个库,要上传到PyPI(pip)。我想让我的程序运行并响应环境变量的输入。

例如,请参阅此库: https://github.com/rg3/youtube-dl

通过pip安装后,用户可以立即通过该程序调用该程序。

$ pip install youtube-dl
$ youtube-dl http://youtube.com/video?v=sdfafd7f6s

# What's cool is that the above even works in a virtualenv!

我也喜欢将我的程序放在环境变量上,但我不知道如何设置它。

任何线索?谢谢!

1 个答案:

答案 0 :(得分:2)

你的问题不清楚。看起来你想要的是从命令行运行你的程序而不显式调用Python解释器。

要执行此操作,您只需在 setup.py 中添加几行即可声明entry point。这在Automatic Script Creation中有解释。基本上,您需要一个console_scripts项:

setup(
    # other arguments here...
    entry_points = {
        'console_scripts': ['foo = my_package.some_module:main_func']
    }
)

你可以在setup.py file for youtube-dl的第68-71行看到类似内容。

如果您真的想阅读环境变量,请使用os模块中的environ

import os

try:
    important_info = os.environ['IMPORTANT_INFO']
except KeyError:
    raise Exception('Set IMPORTANT_INFO environment variable, please!')