为了背景,我想要安装tweeststream包,但是在我的Synaptic软件包管理器中没有找到它。另外,我对编程非常新手,但通常可以跟随代码示例。
更新:2019-05-11:此帖子主要提到virtualenv
,但根据Python关于模块安装的文档,自Python 3.5起,“现在推荐使用venv
创建虚拟环境”,而virtualenv
是Python 3.4之前版本的替代方案。
更新:2018-08-17:自conda-4.4.0起,在所有平台上使用conda
来activate
Anaconda
更新:2017-03-27:PEP 513 - 用于PyPI的manylinux
二进制文件
更新:2016-08-19:Continuum Anaconda选项
这在某种程度上是easy_install/pip或apt-get的重复内容。
Ubuntu 在许多重要功能中使用Python,因此干扰Python可能会损坏您的操作系统。这是我从不在Ubuntu系统上使用pip的主要原因,而是使用Ubuntu软件中心、synaptic、apt-get
或较新的apt
,它们默认从Ubuntu存储库安装软件包。这些软件包经过测试,通常是预编译的,因此安装速度更快,最终专为Ubuntu设计。此外,还安装了所有所需的依赖项,并维护了安装日志,以便可以回滚安装。我认为大多数软件包都有相应的Launchpad存储库,因此您可以提交问题。
pip install requests
这样的操作将无法意识到chardet已经安装在您的系统中,因为Ubuntu版本具有不同的名称,结果会安装一个新版本,这可能会在某种微不足道的方式下损坏您的系统,但为什么要这样做呢?$ sudo pip <anything-could-be-very-bad>
,您应该感到紧张。pip install numpy
来安装numpy和scipy,除非您已经安装了gfortran、atlas-dev、blas-dev和lapack-dev,否则您将看到无尽的编译错误。然而,通过Ubuntu存储库安装numpy和scipy就像...$ sudo apt-get install python-numpy python-scipy
如果您需要最新版本,或者该模块不在Ubuntu软件仓库中,则启动一个virtualenv并使用pip安装该包。尽管pip和setuptools已经合并,但在我个人看来,与easy-install或distutils相比,我更喜欢使用pip,因为它会在将包完全下载和构建后再将其复制到您的文件系统中,并且使升级或卸载变得非常简便。在很多方面,它类似于apt-get,通常能很好地处理依赖关系。然而,您可能需要自己处理一些依赖关系,但自从采用了PEP 513,Python Package Index(PyPI)上现在有适用于Ubuntu和Fedora等流行Linux发行版的manylinux
二进制文件。例如,现在NumPy和SciPy都作为manylinux
wheels默认使用OpenBLAS而不是ATLAS进行Ubuntu发布。您仍然可以通过使用pip选项--no-use-wheel
或--no-binary <格式控制>
从源代码构建它们。
~$ 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
python -m pip install --user pip setuptools wheel virtualenv
virtualenv
已经包含了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
<cwd>/wheelhouse
中创建二进制轮文件,使用-d
指定不同的目录。现在,如果您启动另一个虚拟环境并且需要已经构建的相同软件包,则可以使用pip install --find-links=<fullpath>/wheelhouse
从您的wheelhouse安装它们。sudoers
中,并且未安装virtualenv
。distutils
与--user
或--home=<wherever-you-want>
Python安装方案将软件包安装到site.USERBASE
的值或任何其他位置。较新版本的pip还具有--user
选项。请勿使用sudo
!
pip install --user virtualenv
--install-option
来传递设置选项,这对于向某些构建扩展的setup.py
脚本传递自定义选项非常有用,比如设置PREFIX
。你可能只需要提取分发并使用distutils
以传统方式安装软件包,通过键入python setup install [options]
。阅读一些安装文档和distutils
文档可能会有所帮助。site.USERBASE
添加到您的PYTHONPATH
中,优先于其他任何内容,因此更改将仅对您有效。 --home
的常见位置是~/.local
。 有关确切文件结构以及特定的site-packages位置,请参见Python 模块安装指南。注意:如果使用--home
安装方案,则可能需要将其添加到PYTHONPATH
环境变量中,在您的.bashrc
、.bash_profile
或在您的shell中使用export
,以使您的本地化软件包在Python中可用。如果你在使用Python进行数学、科学或数据方面的工作,那么我强烈推荐Anaconda-Python发行版或更基本的miniconda发行版,由Anaconda, Inc.(以前被称为Continuum Analytics)发布。尽管任何人都可以从使用Anaconda进行个人项目中受益,默认安装包括500多个数学和科学软件包,如NumPy、SciPy、Pandas和Matplotlib,而miniconda只安装Anaconda-Python和conda环境管理器。Anaconda只安装到你的个人配置文件夹下,即例如:/home/<user>/
并且修改了你的建议在你的~/.bashrc
或~/.bash_profile
,将Anaconda的路径添加到你的个人$PATH
~/.bashrc
中使用conda.sh
来启动anaconda,让你可以使用conda activate <env|default is base>
命令 - 这只会影响你自己 - 你的系统路径不会改变。因此,你不需要root访问权限或sudo
来使用Anaconda!如果你已经将Anaconda-Python、miniconda或conda添加到了个人路径中,那么你应该从你的~/.bashrc
中删除PATH
导出,并更新为新的建议,这样你的系统Python将再次成为首选。
--user
选项有些相似,只不过它适用于整个Python而不仅仅是包。因此,Anaconda与您的系统Python完全独立,不会干扰您的系统Python,只有您可以使用或更改它。由于它安装了Python的新版本和所有库,所以您至少需要200MB的空间,但它非常聪明地缓存和管理库,这对于使用Anaconda进行一些酷炫操作非常重要。conda
默认从Anaconda安装软件包,但您可以使用-c
选项指定不同的“频道”。pip
一样使用conda
安装软件包:$ conda install -c pvlib pvlib # install pvlib pkg from pvlib channel
conda
可以做更多的事情!它还可以像virtualenv
一样创建和管理虚拟环境。因此,由于Anaconda创建了虚拟环境,可以使用pip
软件包管理器将PyPI中的软件包安装到Anaconda环境中,无需root或sudo
权限。在Anaconda中不要使用sudo
!警告!但是,在Anaconda环境中混合使用pip
和conda
时要小心,因为您需要更加谨慎地管理软件包依赖关系。在conda环境中,另一个选项是使用conda-forge channel代替pip
,但最好在具有conda-forge作为默认通道的新conda环境中执行此操作。作为最后的选择,如果您无法在任何地方找到软件包,只能在PyPI上找到,请考虑使用--no-deps
,然后使用conda
手动安装剩余的依赖项。# AFTER conda-4.4
~/Projects/myproj $ conda activate py35sci
# BEFORE conda-4.4
~/Projects/myproj $ source activate py35sci
r
渠道中。你甚至可以设置自己的渠道来上传为conda构建的软件包分发。如上所述,conda-forge在conda-forge Anaconda 渠道上维护了许多PyPI上的软件包的自动化构建。sudo pip
来安装Python软件包。使用sudo
应该是一个警告,提醒你要特别小心,因为你会对整个系统进行更改,可能会产生不良后果。你已经被警告了。pip
乱用sudo
破坏了系统的Python分发之前读过这篇文章。非常好的写作,感谢您提供这些信息。 - slhckpip install numpy
应该会安装所有的依赖项。 - Timopip install <package>
只会安装在setup.py
的install_requires
部分列出的Python包依赖。例如:安装Jupyter不会安装Haskell库pandoc以将Jupyter笔记本导出为LaTeX等。 - Mark Mikofskiconda install <package>
可能会安装所有的依赖项,包括C/C++、FORTRAN等,甚至还包括Haskell库,因为conda不仅仅管理Python包,它还管理环境。所以如果你安装了Anaconda或miniconda,然后运行conda install Jupyter
,将会安装配方的meta.yml
文件中的所有内容,包括pandoc Haskell库。欲了解更多信息,请参考PyPA。 - Mark Mikofski尾声
部分要注意措辞。要安装(系统范围或全局)Python软件包,你需要使用sudo
,如$ sudo apt-get install python-numpy python-scipy
。如果没有必要,不要在pip
作为第一个命令时使用sudo
,这是你想要表达的吗? - Timopip install package
这样的命令即可。
在你的情况下,你可以在终端中输入类似以下的命令:sudo pip install tweeststream
sudo pip <anything>
应该非常小心。由于tweetstream
不在Ubuntu软件中心中,我建议使用virtualenv。tweetstream的setup.py
需要anyjson
,而anyjson
是一个Ubuntu软件包。如果不在virtualenv
中安装tweetstream,可能会导致其他依赖于anyjson
的Ubuntu应用程序失败。要进行艰难的故障排除。 - Mark Mikofskisudo pip
。@MarkMikofski:除非你有特定的原因,否则你不需要virtualenv。python -mpip install --user package-name
可以为当前用户安装包 packafe-name
。如果有复杂的(大型C扩展)依赖关系,你可以使用apt-get
来安装它们,以避免无必要地安装构建依赖。 - jfsvirtualenv --no-site-packages --distribute my_python_project
cd my_python_project
source bin/activate
deactivate
你可以在这里了解更多关于virtualenv的信息。
virtualenv
选项--no-site-packages
和--distribute
现在已经过时,并且不再起作用。 - Foragesudo apt-get install python-pip
安装界面上有一个搜索栏,用户可以使用它来搜索并安装所需的软件包。