Answers:
如果您不需要所有用户使用python软件包,则可以将其安装在家里,如下所示:
pip install --user packagename
在家里安装不会与软件包管理器冲突。
默认情况下pip install --user
将安装在您的“用户站点”目录中。通常情况如下:/home/lesmana/.local/lib/python3.6/site-packages
。
以下命令将打印您的“用户站点”位置以及其他信息:
python -m site
要自定义安装位置:
PYTHONUSERBASE=$HOME/some/dir pip install --user packagename
这将安装所有内容 $HOME/some/dir
跑步:
PYTHONUSERBASE=$HOME/some/dir $HOME/some/dir/bin/progname
有关更多信息,请参见pip手册。
如果您确实希望所有用户都使用python软件包,则安装它的最佳位置是/opt
。例如这样的:
PYTHONUSERBASE=/opt/packagedir pip install packagename
(请注意缺少的内容 --user
)
并运行,如上所述:
PYTHONUSERBASE=/opt/packagedir /opt/packagedir/bin/progname
背景说明:/opt
gnu / linux发行版通常将其确认为本地用户或系统管理员可以安装自己的东西的目录。换句话说:发行版的程序包管理器通常不会联系/opt
。这或多或少在文件系统层次结构标准中标准化
为了使用户感到舒适,您仍然需要编写包装脚本并将其放在/bin
或中/usr/bin
。这仍然有与分发程序包管理器冲突的风险,但是至少它只是一个包装脚本文件。因此,可能造成的损害很小。您可以将包装脚本命名为local-foo
或custom-foo
进一步降低与分发程序包管理器发生冲突的风险。
或者,您可以修改PATH
以包括/opt/bin
包装脚本并将其放置在此处。但这又需要您修改一个(或一些)系统文件,其中PATH
该可能再次被分发程序包管理器覆盖。
简而言之:如果要为所有用户安装,请在中进行安装/opt
。为舒适起见,放置包装脚本的位置是一个判断调用。
有关/opt
和文件系统层次结构标准的更多信息:
python
并希望我在开始尝试之前就知道这一点sudio
。谢谢你
通常,在发行版中,建议您使用发行版的程序包管理器。当然,您可以使用pip进行安装(或者在perl世界中为cpan),也可以自己编译和安装。但是,执行此操作时,发行版的程序包管理器不了解它们,也无法管理它们的依赖项或更新。
使用pip几乎等同于编译和安装自己的软件包。如果需要,可以这样做,但是更喜欢发行版的程序包管理器。
pip
(至少通过全局sudo
或以root身份全局使用)- 尝试安装某些依赖项site-package/...
时,我刚遇到了一些已经存在的错误pacman
在ArchLinux中安装PYTHON软件包的正确方法是使用PACMAN!要将软件包安装到Python3,您必须使用
sudo pacman -S python-'package'
如果要从Python2安装软件包,则必须使用
sudo pacman -S python2-'package'
大多数python软件包位于ArchLinux存储库中,而其他软件包则不在AUR(ArchLinux用户存储库)中-对于这些软件包,您必须下载PKGBUILD文件并进行编译。之后,您必须使用PACMAN完成安装
makepkg -s
sudo pacman -U 'compiled-package'
当该软件包不在AUR中或PKGBUILD不起作用时,您可以使用PIP将其安装到Python3
sudo pip install 'python-package'
或Python2
sudo pip2 install 'python-package'
virtualenv
甚至机会conda
在Arch上,您也可以使用VirtualEnvironments。这可以为您的代码带来可移植性,并维护旧软件包。用安装
sudo pacman -S python-virtualenv
尝试一下
virtualenv -p /usr/bin/python3 yourenv
source yourenv/bin/activate
pip install package-name
创建此环境时yourenv
,将设置pip
为仅将软件包安装到此环境中,而不安装到整个系统。
conda
还是virtualenv
:如果遵循这些规则,您的ArchLinux将不会中断,并且在PACMAN和PIP之间不会存在依赖性问题。
希望它有用!
对于某些软件包(我很可能不想破解的软件包),我使用以下方法制作了自己的软件包:
https://github.com/bluepeppers/pip2arch
然后构建并安装产生的PKGBUILD。
我将virtualenvs留给可能要修改或修改的软件包。
除了此处的其他答案外,请检查python-virtualenv
包装。如果要对多个项目进行开发,而这些项目的版本号不匹配,则具有不同的依赖关系。
https://wiki.archlinux.org/index.php/Python_VirtualEnv
还请注意,pip和virtualenv有两种变体。一个用于Python 2,一个用于Python3。如果安装失败并出现语法错误,则您可能尝试使用错误的版本。