我正在使用 web2py 开发一个网络应用程序。在我的 Python 代码中,我必须使用 psutil 来计算磁盘大小、正在使用的 RAM、可用 RAM 和相关信息。
我已经在我的系统上安装了 Python 2.7 的 psutil-2.1.1,到目前为止我对 psutil 没有任何问题。但是当我将 psutil 导入我的 web2py 应用程序时,我收到如下导入错误:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python27\lib\site-packages\psutil\__init__.py", line 53, in <module>
from psutil._common import memoize
File "C:\Python27\lib\site-packages\psutil\_common.py", line 12, in <module>
import socket
File "C:\Python27\lib\socket.py", line 47, in <module>
import _socket
ImportError: DLL load failed: %1 is not a valid Win32 application.
我了解该错误意味着我正在尝试将 32 位的东西导入 64 位的东西,反之亦然。独立于 web2py,psutil 工作得很好。我也试过在虚拟环境中运行同样的程序,它给出了同样的错误。据我所知,web2py 没有明确的 32 位和 64 位安装程序,所以我不明白问题出在哪里。
您可以在下面找到我不得不使用 psutil 的代码:
#all necessary imports
import psutil
def summ_handler():
#...
disk_size = float (psutil.disk_usage(curr_dir).total)/(1024**3)
print ("System Space : %sGB " %disk_size)
#...
ram_total = float(psutil.phymem_usage().total)/(1024**3)
ram_free = float(psutil.phymem_usage().free)/(1024**3)
ram_used = ram_total - ram_free
#printing
#...
编辑:我在sys.path
这里包含了差异
sys.path
从web2py
C:\Python27\web2py\site-packages
C:\Python27\web2py
C:\Python27\web2py\gluon
C:\Python27\lib\site-packages\setuptools-5.4.1-py2.7.egg
C:\Python27\lib\site-packages\distribute-0.6.49-py2.7.egg
C:\Python27\web2py\library.zip
C:\Python27
C:\Python27\lib\site-packages
C:\Python27\lib\site-packages\win32
C:\Python27\lib\site-packages\win32\lib
C:\Python27\lib\site-packages\Pythonwin
C:\Python27\lib\site-packages\setuptools-0.6c11-py2.7.egg-info
C:\Python27\web2py\gluon
sys.path
对于一个普通的脚本。psutil
在这里工作。
C:\Python27\lib\site-packages\setuptools-5.4.1-py2.7.egg
C:\Python27\lib\site-packages\distribute-0.6.49-py2.7.egg
C:\windows\system32\python27.zip
C:\Python27\DLLs
C:\Python27\lib
C:\Python27\lib\plat-win
C:\Python27\lib\lib-tk
C:\Python27
C:\Python27\lib\site-packages
C:\Python27\lib\site-packages\win32
C:\Python27\lib\site-packages\win32\lib
C:\Python27\lib\site-packages\Pythonwin
C:\Python27\lib\site-packages\setuptools-0.6c11-py2.7.egg-info