在 Ubuntu 11 中安装 Python 包的最佳方法是什么?我最近刚转用 Ubuntu,想学习最佳实践。
就上下文而言,我想安装 tweeststream 包,但我在 Synaptic 包管理器中没有看到它。另外,我对编程还很陌生,但我通常可以跟着代码示例一起学习。
答案1
更新时间:2019-05-11:这篇文章主要提到了virtualenv
,但根据有关模块安装的 Python 文档venv
,自 Python 3.5 起“现在建议使用来创建虚拟环境”,而virtualenv
是 Python 3.4 之前版本的替代方案。
更新时间:2018-08-17:自conda-4.4.0在所有平台上使用conda
anacondaactivate
更新时间:2017-03-27:PEP 513 - manylinux
PyPI 二进制文件
更新时间:2016-08-19:Continuum Anaconda 选项
这有点重复了easy_install/pip 或 apt-get。
为了全球的Python 软件包,使用 Ubuntu 软件中心、apt、apt-get 或 synaptic
Ubuntu 使用 Python 来实现许多重要功能,因此干扰 Python 可能会损坏您的操作系统。这是我从不在 Ubuntu 系统上使用 Python 的主要原因pip
,而是使用 Ubuntu 软件中心,突触,apt-get
或较新的 just apt
,它们都默认安装来自Ubuntu 存储库。这些软件包经过测试,通常经过预编译,因此安装速度更快,最终专为 Ubuntu 设计。此外,还安装了所有必需的依赖项,并维护了安装日志,以便可以回滚。我认为大多数软件包都有相应的发射台repos,以便您可以提交问题。
使用 Ubuntu 软件包的另一个原因是,有时这些 Python 软件包的名称会有所不同,具体取决于您从哪里下载它们。Python-chardet 就是一个软件包的例子,它在 PyPI 上曾经被命名为一个东西,而在 Ubuntu 存储库中则被命名为另一个东西。因此,执行类似操作pip install requests
不会意识到 chardet 已安装在您的系统中,因为 Ubuntu 版本的名称不同,因此会安装一个新版本,这会对您的系统造成轻微的损坏,但您为什么要这样做呢?
一般来说,你只想在操作系统中安装可信代码。所以你应该紧张的关于打字$ sudo pip <anything-could-be-very-bad>
。
最后,使用 Ubuntu 软件包安装某些东西会更容易。例如,如果您尝试pip install numpy
安装 numpy 和 scipy,除非您已经安装了 gfortran、atlas-dev、blas-dev 和 lapack-dev,否则您将看到无休止的编译错误。但是,通过 Ubuntu 存储库安装 numpy 和 scipy 非常简单...
$ sudo apt-get install python-numpy python-scipy
您很幸运,因为您使用的是 Ubuntu,它是目前支持最广泛且更新最频繁的发行版之一。您所需的每个 Python 包很可能都在 Ubuntu 存储库中,并且可能已经安装在您的计算机上。每 6 个月,都会随最新的 Ubuntu 发行版发布新一轮的包。
如果您 100% 确信该软件包不会以任何方式干扰您的 Ubuntu 系统,那么您可以使用 pip 安装它,Ubuntu 非常友好,可以将这些软件包与发行版软件包分开,方法是将发行版软件包放在名为 的文件夹中dist-packages/
。Ubuntu 存储库中有 pip、virtualenv 和 setuptools。但是,我赞同 Wojciech 使用 virtualenv 的建议。
为了个人的Python 项目在虚拟环境中使用 pip 和 wheel
如果您需要最新版本,或者模块不在 Ubuntu 存储库中,则启动虚拟环境并使用 pip 安装软件包。尽管 pip 和 setuptools 已经合并,但在我看来,pip 比 easy-install 或 distutils 更受欢迎,因为它总是等到软件包完全下载并构建后才将其复制到您的文件系统中,这使得升级或卸载变得轻而易举。在很多方面,它与 apt-get 相似,因为它通常能很好地处理依赖关系。但是您将 可能必须自己处理一些依赖关系,但是由于PEP 513manylinux
被采纳后,Python 软件包索引 (PyPI) 上现在有适用于 Ubuntu 和 Fedora 等流行 Linux 发行版的二进制文件.例如,如上所述,对于 NumPy 和 SciPy,请确保已从 Ubuntu 存储库安装了 gfortran、atlas-dev、blas-dev 和 lapack-dev。例如,两者NumPy和科学manylinux
现在以Wheels形式分发给 Ubuntu默认情况下使用 OpenBLAS 而不是 ATLAS。您仍然可以使用以下方法从源代码构建它们:pip 选项--no-use-wheel
或--no-binary <format control>
。
~$ sudo apt-get install gfortran libblas-dev liblapack-dev libatlas-dev python-virtualenv
~$ mkdir ~/.venvs
~$ virtualenv ~/.venvs/my_py_proj
~$ source ~/.venvs/my_py_proj/bin/activate
~(my_py_proj)$ pip install --no-use-wheel numpy scipy
请参阅下一节“您不在sudoers
”,了解如何将 pip、setuptools、virtualenv 或 wheels 的更新版本安装到您的个人的使用 pip 安装方案来配置配置文件--user
。您可以使用它来更新 pip 以供个人使用JF Sebastian 在对另一个答案的评论中指出。注意:-m
只有在 MS Windows 上更新 pip 时才需要。
python -m pip install --user pip setuptools wheel virtualenv
较新版本的 pip 会自动缓存轮子,因此以下内容仅适用于较旧版本的 pip。由于您可能最终会安装这些多次,请考虑使用带有 pip 的 wheel 来创建驾驶室。virtualenv
自 v13.0.0 起Wheel 已包含在内因此如果您的版本virtualenv
太旧,您可能需要先安装wheel。
~(my_py_proj)$ pip install wheel # only for virtualenv < v13.0.0
~(my_py_proj)$ pip wheel --no-use-wheel numpy scipy
这将在 中创建二进制 wheel 文件<cwd>/wheelhouse
,用于-d
指定不同的目录。现在,如果您启动另一个虚拟环境并且需要已经构建的相同软件包,则可以使用以下命令从 wheelhouse 安装它们pip install --find-links=<fullpath>/wheelhouse
读安装 Python 模块在 Python 文档中安装软件包在Python 包索引主页。 还点子,韦恩,虚拟环境和车轮。
如果你不在sudoers
并且virtualenv
未安装。
使用虚拟环境的另一种选择是,或者如果您使用的是没有 root 权限的 Linux 共享,则可以使用--user
或者--home=<wherever-you-want>
Python 安装方案与 Python 的distutils
将安装包的值site.USERBASE
或任何你想要的。pip 的新版本也有一个--user
选项。不使用sudo
!
pip install --user virtualenv
如果你的 Linux pip 版本太旧,那么你可以使用以下方式传递设置选项--install-option
这对于将自定义选项传递给某些构建扩展的软件包的某些脚本非常有用setup.py
,例如设置PREFIX
。您可能只需要提取分发包并使用distutils
以老式方式安装软件包,方法是键入python setup install [options]
。阅读一些安装文档和distutils
文档可能会有帮助。
Python 很好,可以添加site.USERBASE
你的PYTHONPATH
领先于其他任何事情,因此更改只会影响您。 一个流行的位置--home
是~/.local
。请参阅 Python模块安装指南了解确切的文件结构以及您的站点包的具体位置。笔记:如果你使用--home
安装方案,那么你可能需要将其添加到PYTHONPATH
环境变量使用export
在你的.bashrc
或者.bash_profile
在您的 shell 中让您的本地化包可以在 Python 中使用。
使用Continuum Anaconda Python适用于数学、科学、数据或个人项目
如果你使用 Python 进行数学、科学或数据处理,那么在我看来,一个非常好的选择是Anaconda-Python 发行版或者更基本的miniconda 发行版被释放Anaconda, Inc.(以前称为连续分析)。虽然任何人都可以通过使用 Anaconda 进行个人项目而受益,默认安装包括 500 多个数学和科学软件包,例如 NumPy、SciPy、Pandas 和 Matplotlib而 miniconda 只安装 Anaconda-Python 和 conda 环境管理器。Anaconda 只安装到您的个人资料中,IE: /home/<user>/
并改变你的 建议~/.bashrc
或~/.bash_profile
将 Anaconda 的路径添加到你的个人$PATH
conda.sh
在你的源中~/.bashrc
使用它conda activate <env|default is base>
来启动 anaconda-这只会影响你- 您的系统路径没有改变。 所以你做不是需要 root 权限或者sudo
使用 Anaconda!如果您已将 Anaconda-Python、miniconda 或 conda 添加到您的个人路径中,那么您应该PATH
从中删除导出~/.bashrc
,并更新到新推荐,这样你的系统 Python 将再次成为第一。
这有点类似于--user
我在上一节中解释的选项,只不过它适用于整个 Python,而不仅仅是软件包。因此 Anaconda与您的系统 Python 完全分离,它不会干扰您的系统 Python,只有您可以使用或更改它。由于它会安装新版本的 Python 及其所有库,因此您将需要至少 200MB 的空间,但它在缓存和管理库方面非常聪明,这对于您可以使用 Anaconda 完成的一些很酷的事情非常重要。
Anaconda 整理了依赖项所需的 Python 二进制文件和库的集合在线存储库(以前称为宾斯塔),它们还将用户软件包托管为不同的“频道”。Anaconda 使用的软件包管理器conda
默认安装来自 Anaconda 的软件包,但您可以使用选项发出不同的“频道”信号-c
。
conda
使用如下命令安装软件包pip
:
$ conda install -c pvlib pvlib # install pvlib pkg from pvlib channel
但conda
能做的远不止这些!它还可以像 一样创建和管理虚拟环境virtualenv
。因此,由于 Anaconda 创建了虚拟环境,因此pip
可以使用包管理器将包从 PyPI 安装到 Anaconda 环境中,而无需 root 或sudo
。做不是sudo
与 Anaconda 一起使用!警告!pip
不过,在 Anaconda 环境中混合时一定要小心,conda
因为你必须更仔细地管理包依赖项。pip
在 conda 环境中的另一种选择是使用conda-forge 频道,但最好在新的 conda 环境中以 conda-forge 作为默认渠道执行此操作。作为最后的手段,如果你在 PyPI 之外的任何地方都找不到包,请考虑使用--no-deps
然后使用 手动安装剩余的依赖项conda
。
Anaconda 在某些方面也类似于Ruby RVM如果你熟悉该工具。Anacondaconda
还允许你使用不同的Python 版本。例如:conda create -n py35sci python==3.5.2 numpy scipy matplotlib pandas statsmodels seaborn
将在名为 的新环境中使用 Python-3.5 创建科学/数据科学堆栈py35sci
。您可以使用 切换环境conda
。自 conda-4.4.0 以来,现在不同的用途,但virtualenv
之前source venv/bin/activate
conda-4.4.0命令conda
是相同的以及virtualenv
还用于source
:
# AFTER conda-4.4
~/Projects/myproj $ conda activate py35sci
# BEFORE conda-4.4
~/Projects/myproj $ source activate py35sci
但等等,还有更多!Anaconda 还可以安装不同的语言,例如R 用于统计规划来自Anacondar
频道。你甚至可以设置自己的频道来上传软件包分发为 conda 构建。 如上所述conda-forge维护 PyPI 上许多软件包的自动构建conda-forge Anaconda 频道。
结语
根据你的个人需求和访问权限,在 Linux 上维护 Python 项目有很多选择。但是,如果说有什么是我希望你从这个答案中学到的,那就是你永远不应该使用sudo pip
安装 Python 包. 的使用sudo
应是警告你要格外小心,因为你将进行系统范围的更改,这可能会带来不良后果。你已被警告。
祝你好运,编码愉快!
答案2
我认为最好的方法是安装 Python 打包系统,例如“python-pip”。您可以使用 Synaptic 或 Ubuntu Software Center 安装它。
Pip 可让您轻松安装和卸载 Python 包,操作如下pip install package
。对于您来说,终端中的操作如下:
sudo pip install tweeststream
答案3
除了 Novarchibald 的补充之外,通常最好为你的 Python 项目创建一个虚拟环境并在其中安装依赖项。这可以让你更好地控制依赖项及其版本。要设置虚拟环境,请输入:
virtualenv --no-site-packages --distribute my_python_project
然后,使用以下命令激活它:
cd my_python_project
source bin/activate
此时,您使用 pip 安装的所有内容都将保留在此虚拟环境中。如果您想全局安装某些内容,则应首先使用以下命令退出 virtualenv:
deactivate
您可以了解有关 virtualenv 的更多信息这里。
答案4
尝试这个 使用 PyQt4 开发的 PIP 的 GUI 框架
使用 PyQt4 开发的 PIP 的 GUI 框架
开始屏幕
开始屏幕包含供用户选择想要执行的流程的选项。
还可以指定想要执行操作的 Python 版本。
文件菜单有一个选项“退出”(快捷键:Ctrl+Q)和“刷新列表”,用于刷新包含包数据的资源文件。
安装屏幕
安装屏幕有一个搜索栏,用户可以使用它来搜索和安装所需的包。
更新屏幕
更新屏幕显示已过期且可以升级的软件包列表。
卸载屏幕
卸载屏幕显示用户系统中安装的并且可以卸载的软件包列表。
进度窗口
进度窗口是 PIP-GUI 的内置终端小部件,它显示执行操作时运行的进程。