使用pip安装时,将python脚本添加到PATH环境变量中

时间:2018-08-09 21:29:38

标签: python django

通过pip安装django时,修改了PATH环境变量,以使用户可以直接在终端中访问django-admin。 (django-admin startproject project_name)

我希望我的点子包裹也一样。 我研究了如何使用python修改环境变量,但是python脚本结束后 os.environ [“ PATH”] 不会保存。

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

执行此操作的理想方法是给setuptools一个Entry Point

在一个模块中编写一个函数,而不是编写脚本。

例如,将此行添加到setup中的setup.py呼叫中:

entry_points = {
    'console_scripts': ['mytool'=mypkg.myscript:myfunc'],
}

…和setuptools将在安装时自动创建一个名为mytool的脚本,该脚本将导入mypkg.myscript and calls its myfunc , all in a way that's appropriate for whatever Python installation the user used to pip install your package, and put mytool onto the user's PATH`。

这样,它可以解决您从未想到的各种可移植性问题。如果用户使用Windows且其默认Python为2.7,但他们使用py -3 -m pip来安装该怎么办?他们将获得一个名为mytool.py而不是mytool的文件,并且它将具有Windows py-launcher兼容的shbang行,并且可以正常工作。


有时,您无法以这种方式进行重组,而必须手动编写脚本。在这种情况下,只需在setuptools调用中添加以下参数,即可为setup提供脚本路径:

scripts=['bin/mytool']

setuptools不能在这里发挥所有作用,但仍可以将脚本安装到用户的PATH中。


当然,所有这些都取决于Python的正确设置。但是,尽管Python设法将pipdjango-admin放在您的PATH上,然后它将脚本以完全相同的方式放在PATH上。