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



当通过pip安装django时,PATH环境变量被修改为允许用户直接在终端中访问django-admin。(django-admin startproject project_name(

我想对我的点子包也是如此。 我研究了使用 python 修改环境变量,但os.environ["PATH"]在 python 脚本结束后不会保存。

有什么建议吗?

执行此操作的理想方法是为setuptools提供一个入口点。

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

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

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

setuptools将在安装时自动创建一个名为mytool的脚本,该脚本将 mypkg.myscript 导入 myfuncand calls itsmyfunc, all in a way that's appropriate for whatever Python installation the user used topip installyour package, and putmytoolonto the user'sPATH'。

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


有时,您无法以这种方式重新组织内容,并且必须手动编写脚本。在这种情况下,只需通过将此参数添加到setup调用中,为setuptools提供脚本的路径:

scripts=['bin/mytool']

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


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

相关内容

  • 没有找到相关文章

最新更新