编辑:我的问题不是不是,关于如何立即让小知识发挥作用。我通过重新链接来解决此问题,如您在问题中所见。
问题是:在新的* NIX系统上,最佳/ python最佳实践是什么? 人们可能想要拥有Python2的最新版本,尤其是具有pip和setuptools等的Python3。受保护的虚拟环境似乎是其中的一种方式,但是无论如何都必须从某个地方开始。
那是什么建议?
从评论看来,应该使用get-pip.py
脚本进行安装,然后使用pip安装virtualenv。我想如果要同时使用Python2和Python3,则必须同时进行。
这是几天前发生的事情:
Ubuntu 18.04和Python 2.7
我是R的重度用户,但是使用越来越多的Python。几乎每次我在Linux或OSX上建立任何类型的自定义python环境时,都会发生故障,并且必须弄乱……链接,二进制文件,路径,依赖项。每次。现在有成千上万的人坐在Ubuntu / Debian机器上,apt install python pip; pip install --upgrade pip
和-duh-会坏吗?真的吗?
现在特别是:我想在网络服务器上安装django,并以apt install python-pip
开头。
然后我推荐使用pip install --upgrade pip
,它安装了pip-18.0但给出了消息Not uninstalling pip at /usr/lib/python2.7/dist-packages
此后pip --version
抛出错误
回溯(最近一次通话最后一次):文件“ / usr / bin / pip”,第9行,在 来自pip import main
原来,旧的点仍位于/usr/bin/pip
中,而新的点仍位于/usr/local/bin/pip
中。
我用以下方法解决了蛮力问题:
rm /usr/bin/pip
ln -s /usr/local/bin/pip /usr/bin/pip
我做对了还是这是注定要失败的方法?
是否有Python或优雅的方式来处理此类问题或从一开始就防止它们出现?
致以最诚挚的问候,并感谢您提出任何建议。
答案 0 :(得分:0)
调查评论中的提示后,我的结论是:
pyenv
似乎最适合我的目的。使用以下命令安装第一个pyenv(1),对其进行更新(2),使用pyenv(3)安装Python版本(对于此示例3.5.6),将用户全局python设置为已安装的版本(4),升级Python软件包管理工具(5),然后在虚拟Python环境中安装任何内容(6)。
curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash
pyenv update
CONFIGURE_OPTS=--enable-shared pyenv install 3.5.6
pyenv global 3.5.6
pip install --upgrade pip setuptools wheel
pip install ipython jupyter snowflake-connector-python seaborn
CONFIGURE_OPTS=--enable-shared
。 seaborn
将无法安装。
请注意,已安装的pyenv
版本包括程序包管理器pip
。现在,每次调用python或pip都将引用正确的版本。
在MacOS bash和其他* NIX中的脚本中引用python时,请使用#!/usr/bin/env python
。
可以安装pyenv install 2.7.15
最新的python 2.7,并在必要时进行更改。 pyenv shell 2.7.15
仅在需要运行临时脚本时才针对特定的Shell会话切换到Python2.7。
自从我使用此流程后,我就再也没有头痛了。
到目前为止,相同的设置在本地MacOS和基于Ububtu的远程Jupyter笔记本服务器上均能发挥出色的作用。
免责声明:我不是Python核心全栈开发人员,但是在数据科学管道中必要时使用Python。因此,对于用Python开发应用程序来说,这可能不是最好的解决方案,但是对于数据科学环境的一致管理而言,它似乎运行良好。
希望这会有所帮助。