Awn*_*Awn 7 python installation pip path
对于我的包,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)
Run Code Online (Sandbox Code Playgroud)
在我的Arch系统上进行测试时,它会自动将脚本添加到PATH中,这样我就可以foo在命令行上运行,并自动运行main()函数.然后,我启动了一个虚拟机并在Windows 7上进行了测试.Pip安装好的软件包,但它不在我的路上!
救命?
不要期望pip或easy_install修改您的PATH,他们的任务是将包安装到当前环境中。
在 Linux 上,如果你使用全局 Python 环境,你很可能需要 root 权限,所以你通常这样做:
$ sudo pip install <package>
Run Code Online (Sandbox Code Playgroud)
但是,这不是推荐的方法,因为它会破坏系统范围的 Python 环境(想象一下,有两个应用程序对同一包版本的要求略有不同,您可能会遇到问题)。
推荐的方法是使用某种virtualenv,它允许将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>
Run Code Online (Sandbox Code Playgroud)
现在你应该在~/apps/myutil/.env/bin目录中安装了由 安装的所有脚本pip,让我们称之为myscript(可以有更多)。
剩下的步骤是从某个已经存在的目录中创建符号链接PATH,例如进入/usr/local/bin:
$ cd /usr/local/bin
$ sudo ln -s ~/apps/myutil/.env/bin/myscript
Run Code Online (Sandbox Code Playgroud)
从现在开始,myscript即使没有激活virtualenv ,您也可以调用命令。
如果您需要安装更高版本的脚本:
$ cd ~/apps/myutil
$ source .env/bin/activate
(.env)$ pip install --upgrade <package-or-more>
Run Code Online (Sandbox Code Playgroud)
链接脚本后,它将自动在最新版本中可用。
virtualenvwrapper允许您创建多个命名的 virtualenvs 并让您轻松激活和停用。在这种情况下,我执行以下操作:
$ 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
Run Code Online (Sandbox Code Playgroud)
升级更简单:
$ workon bin-myscript
(bin-myscript)$ pip install --upgrade <package-or-two>
Run Code Online (Sandbox Code Playgroud)
你就完成了
tox是自动创建虚拟环境和测试的好工具。我用它在我喜欢的目录中创建 virtualenv。有关更多信息,请参阅我的其他SO 答案
setuptools,pip并且easy_install不修改系统PATH变量。通常<python directory>\Scripts,所有目录均默认安装脚本的目录通常是在安装过程中由Python安装程序添加到PATH的。
如果在安装过程中未将scripts文件夹添加到PATH中,则可以通过运行进行修复<python directory>\Tools\scripts\win_add2path.py。(请参阅如何查找Windows上安装Python的位置?)
顺便说一下,上面的示例setup.py文件对我来说很好(在PATH中的Scripts目录中)。我用
python setup.py bdist_wheel
pip install dist\foo-0.0.1-py3-none-any.whl
Run Code Online (Sandbox Code Playgroud)
和
python setup.py sdist
pip install dist\foo-0.0.1.zip
Run Code Online (Sandbox Code Playgroud)