在/ usr / lib中升级apt安装的Python包?

时间:2017-05-26 08:28:54

标签: python ubuntu packages

是否可以升级使用apt-get安装的软件包,因此位于/ usr / lib /中,如果这样的软件包在pypi中有更新的版本,但不在apt的标准Ubuntu存储库中?

我认为它很危险,因为它可能会破坏依赖性,但它只是要知道。

1 个答案:

答案 0 :(得分:0)

是的,是的。

我卸载Flask

$ sudo apt-get remove python-flask

我没有:

$  python
Python 2.7.13 (default, Jan 19 2017, 14:48:08) 
[GCC 6.3.0 20170118] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import flask
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named flask

我安装它

$ sudo apt-get install python-flask
$ python
Python 2.7.13 (default, Jan 19 2017, 14:48:08) 
[GCC 6.3.0 20170118] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import flask
>>> flask.__version__
'0.12'

仔细检查:

$ pip list -o | grep Flask
DEPRECATION: The default format will switch to columns in the future. You can use --format=(legacy|columns) (or define a format=(legacy|columns) in your pip.conf under the [list] section) to disable this warning.
Flask (0.12.1) - Latest: 0.12.2 [wheel]

升级:

$ sudo pip install --upgrade Flask
...
Successfully installed Flask-0.12.2 Jinja2-2.9.6 MarkupSafe-1.0 Werkzeug-0.12.2 click-6.7 itsdangerous-0.24

$ python
Python 2.7.13 (default, Jan 19 2017, 14:48:08) 
[GCC 6.3.0 20170118] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import flask
>>> flask.__version__
'0.12.2'

我发现pip检查存在问题,但是:

$ pip list -o | grep Flask
DEPRECATION: The default format will switch to columns in the future. You can use --format=(legacy|columns) (or define a format=(legacy|columns) in your pip.conf under the [list] section) to disable this warning.
Flask (0.12.1) - Latest: 0.12.2 [wheel]

所以我必须有一些链接或某些内容被破坏,但即使我使用apt-get remove,这个问题仍然存在。总而言之,我能够导入更新版本的Flask,这就是我想要的。

修改

好的,问题是pipFlask的不同位置安装apt-get。这是pip输出:

>>> flask.__file__
'/usr/local/lib/python2.7/dist-packages/flask/__init__.pyc'

这是apt-get的:

>>> flask.__file__
'/usr/lib/python2.7/dist-packages/flask/__init__.pyc'

Here描述了如何将pip安装包装在不同的目录中。但是,我没有测试过它。