首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么在默认情况下没有将pip软件包安装到$PATH上?

为什么在默认情况下没有将pip软件包安装到$PATH上?
EN

Stack Overflow用户
提问于 2018-05-20 16:53:10
回答 2查看 5.8K关注 0票数 3

通常,在ruby生态系统中使用ruby或在JavaScript生态系统中使用npm/yarn时,都会在$PATH的某个位置安装包,或者至少指示您将包安装位置添加到path $PATH中。

pippython生态系统中,似乎从来没有强调过这一点。相反,我们鼓励您通过python -m <name>运行模块,等等。

我觉得有点奇怪,这只是一个设计上的决定吗?将site-packagespip使用的任何位置放置到$PATH中是一种良好的实践吗?例如,有时将二进制文件添加到/usr/local/bin中(有时使用与包本身不同的名称--例如,django-admin而不是带有pip install Djangodjango,而二进制文件通常与ruby/JavaScript生态系统中的包名称相同),例如,我看到了,但这一直是这样吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-05-20 20:08:19

你把$PATH$PYTHONPATH搞混了。site-packages用于$PATH用于程序(二进制文件和脚本)。pip将库安装到其site-packages中,并将脚本安装到相应的bin/目录中;例如,如果site-packages是,则/usr/local/lib/pythonX.Y/site-packages脚本被安装到/usr/local/bin/中。

pip不检查/usr/local/bin/是否在$PATH中。嗯,我同意你的观点--如果还没有bin/目录,它应该检查并提醒用户添加$PATH目录。

票数 2
EN

Stack Overflow用户

发布于 2018-05-20 17:10:12

在运行安装的二进制文件时,特定python安装的site-packages目录将自动添加到sys.path中。当该二进制文件执行import modname时,它将查找sys.path上的目录。因此,当您使用特定的python二进制文件运行pip install时,默认情况下,pip会将该包放入该二进制文件的site-packages中,以便二进制文件能够导入包。先进的使用可以做更复杂的事情。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50437251

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档