自动将已安装的PIP包添加到路径

2024-05-20 01:06:44 发布

您现在位置:Python中文网/ 问答频道 /正文

对于我的包foo,我使用以下setup.py:

from setuptools import setup

setup(name='foo',
      version='0.0.1',
      description='Lol',
      url='https://github.com/foo/foo',
      author='legend',
      author_email='lol@gmail.com',
      license='GPLv3',
      packages=['foo'],
      install_requires=["bar"],
      entry_points = {'console_scripts': ['foo = foo:main']},
      keywords = ['foo'],
      zip_safe=False)

在我的Arch系统上测试时,它会自动将脚本添加到PATH中,这样我就可以在命令行上运行foo,它会自动运行main()函数。然后,我启动了一个VM并在Windows 7上进行了测试。Pip安装的程序包很好,但它不在我的路径上!

帮忙?


Tags: namefrompyhttpsimportcomurlfoo
2条回答

不要期望pipeasy_install修改您的PATH,他们的任务是将包安装到当前环境中。

在Linux上,如果使用全局Python环境,则可能需要根权限,因此通常需要:

$ sudo pip install <package>

但是,这不是推荐的方法,因为它破坏了系统范围的Python环境(假设有两个应用程序对同一个包版本的要求稍有不同,您可能会遇到问题)。

推荐的方法是使用某种virtualenv,它允许将python包安装到单独的python环境中,这样也很容易删除和重新创建。

如何将基于python的脚本安装到系统中

似乎您有基于python的自定义脚本,希望在系统中使用该脚本。

对于这个场景,我使用以下方法(假设virtualenv工具安装到系统范围的python中):

$ mkdir ~/apps
$ mkdir ~/apps/myutil
$ cd ~/apps/myutil
$ virtualenv .env
$ source .env/bin/activate
(.env)$ pip install <package-or-more>

现在您应该已经在~/apps/myutil/.env/bin目录中安装了pip安装的所有脚本,让我们称之为myscript(可以有更多)。

剩下的步骤是从已经在PATH上的某个目录创建符号链接,例如进入/usr/local/bin

$ cd /usr/local/bin
$ sudo ln -s ~/apps/myutil/.env/bin/myscript

从现在起,即使没有激活virtualenv,也可以调用命令myscript

更新脚本

如果需要安装更高版本的脚本:

$ cd ~/apps/myutil
$ source .env/bin/activate
(.env)$ pip install --upgrade <package-or-more>

当您链接了脚本时,它将自动在最新版本中可用。

用virtualenvwrapper命名

virtualenvwrapper允许您创建多个命名的virtualenv,并为您提供简单的激活和 失活。在这种情况下,我将执行以下操作:

$ mkvirtualenv bin-myscript
(bin-myscript)$ pip install <package-or-more>
(bin-myscript)$ which `myscript`
~/.Evns/bin-myscript/bin/myscript
(bin-myscript)$ cd /usr/local/bin
(bin-myscript)$ sudo ln -s ~/.Evns/bin-myscript/bin/myscript

升级更简单:

$ workon bin-myscript
(bin-myscript)$ pip install --upgrade <package-or-two>

你就完了

有毒物质替代品

tox是自动创建虚拟机和进行测试的好工具。我用它来创造 我喜欢的目录中的virtualenvs。有关详细信息,请参阅我的其他SO answer

setuptoolspipeasy_install不修改系统路径变量。默认情况下,<python directory>\Scripts目录是所有安装脚本的目录,通常在安装过程中由Python安装程序添加到PATH。

如果在安装过程中脚本文件夹没有添加到您的路径中,您可以通过运行<python directory>\Tools\scripts\win_add2path.py来解决这个问题。(见How can I find where Python is installed on Windows?


顺便说一下,上面的示例setup.py文件对我来说工作得很好(脚本目录在PATH中)。我用

python setup.py bdist_wheel
pip install dist\foo-0.0.1-py3-none-any.whl

以及

python setup.py sdist
pip install dist\foo-0.0.1.zip

相关问题 更多 >