问题
when i check the version of psutil in python it says i have version 0.5.0
:
$ uname -a
Linux mypc 3.2.0-4-amd64 #1 SMP Debian 3.2.60-1+deb7u3 x86_64 GNU/Linux
$ python
Python 2.7.3 (default, Mar 13 2014, 11:03:55)
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import psutil
>>> psutil.__version__
'0.5.0'
>>> psutil.virtual_memory()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'virtual_memory'
>>> psutil.__file__
'/usr/lib/pymodules/python2.7/psutil/__init__.pyc'
i want to upgrade to a newer version of psutil which has the virtual_memory()
method:
$ sudo pip install 'psutil==2.2.1' --upgrade
Requirement already up-to-date: psutil==2.2.1 in /usr/local/lib/python2.7/dist-packages
Cleaning up...
the two different paths for the same package imply that psutil
is installed twice:
/usr/local/lib/python2.7/dist-packages
/usr/lib/pymodules/python2.7/psutil/__init__.pyc
i only want psutil
version 2.2.1
. what is the best way to clean up the other unwanted 0.5.0
package and only keep this later one?
as per the comments - checking if either of the above paths were installed through dpkg
:
$ dpkg -S /usr/local/lib/python2.7/dist-packages
dpkg-query: no path found matching pattern /usr/local/lib/python2.7/dist-packages
$ dpkg -S /usr/lib/pymodules/python2.7/psutil/__init__.pyc
dpkg-query: no path found matching pattern /usr/lib/pymodules/python2.7/psutil/__init__.pyc
回答1:
remove all versions of psutil
and install 2.2.1
again:
$ sudo pip uninstall psutil
Uninstalling psutil:
/usr/local/lib/python2.7/dist-packages/_psutil_linux.so
/usr/local/lib/python2.7/dist-packages/_psutil_posix.so
/usr/local/lib/python2.7/dist-packages/psutil
/usr/local/lib/python2.7/dist-packages/psutil-2.2.1.egg-info
Proceed (y/n)? y
Successfully uninstalled psutil
$ sudo apt-get remove --purge python-psutil
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be REMOVED:
python-psutil*
0 upgraded, 0 newly installed, 1 to remove and 294 not upgraded.
After this operation, 215 kB disk space will be freed.
Do you want to continue [Y/n]? Y
(Reading database ... 183978 files and directories currently installed.)
Removing python-psutil ...
Processing triggers for python-support ...
$ sudo pip install 'psutil==2.2.1'
Downloading/unpacking psutil==2.2.1
Downloading psutil-2.2.1.tar.gz (223Kb): 223Kb downloaded
Running setup.py egg_info for package psutil
warning: no previously-included files matching '*' found under directory 'docs/_build'
Installing collected packages: psutil
Running setup.py install for psutil
building '_psutil_linux' extension
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -DPSUTIL_VERSION=221 -I/usr/include/python2.7 -c psutil/_psutil_linux.c -o build/temp.linux-x86_64-2.7/psutil/_psutil_linux.o
gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-z,relro build/temp.linux-x86_64-2.7/psutil/_psutil_linux.o -o build/lib.linux-x86_64-2.7/_psutil_linux.so
building '_psutil_posix' extension
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include/python2.7 -c psutil/_psutil_posix.c -o build/temp.linux-x86_64-2.7/psutil/_psutil_posix.o
gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-z,relro build/temp.linux-x86_64-2.7/psutil/_psutil_posix.o -o build/lib.linux-x86_64-2.7/_psutil_posix.so
warning: no previously-included files matching '*' found under directory 'docs/_build'
Successfully installed psutil
Cleaning up...
$ python
Python 2.7.3 (default, Mar 13 2014, 11:03:55)
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import psutil
>>> psutil.__version__
'2.2.1'
>>> psutil.__file__
'/usr/local/lib/python2.7/dist-packages/psutil/__init__.pyc'
来源:https://stackoverflow.com/questions/30180722/unable-to-update-python-package-psutil