在python3.6的pycharm中,在一段检测进程占用内存情况的代码中,由于是开源代码,它指定的路径是Linux系统里的'/proc/{}/status'
而我没有这样的路径,我应该怎么修改
报错如图
D:\Anaconda\anaconda3\envs\pytorch\python.exe D:\GNN_test1\GNN-GCP-master\GNN-GCP-master\neurosat\neurosat_train.py
Traceback (most recent call last):
File "D:\GNN_test1\GNN-GCP-master\GNN-GCP-master\neurosat\neurosat_train.py", line 29, in
print( "{timestamp}\t{memory}\tBuilding model ...".format( timestamp = timestamp(), memory = memory_usage() ) )
File "D:\GNN_test1\GNN-GCP-master\GNN-GCP-master\neurosat\util.py", line 11, in memory_usage
s = next( line for line in open( '/proc/{}/status'.format( pid ) ).read().splitlines() if line.startswith( 'VmSize' ) ).split()
FileNotFoundError: [Errno 2] No such file or directory: '/proc/11612/status'
Process finished with exit code 1
代码片段是这样
def memory_usage():
pid=os.getpid()
s = next( line for line in open( '/proc/{}/status'.format( pid ) ).read().splitlines() if line.startswith( 'VmSize' ) ).split()
return "{} {}".format( s[-2], s[-1] )
#end memory_usage
我大概了解是路径 '/proc/{}/status'有问题,但是不知道应该怎么修改,希望得到解决方法
以下答案由GPT-3.5大模型与博主波罗歌共同编写:
'/proc/{}/status'是Linux系统的路径,如果你在Windows系统中使用该路径,会因为找不到目录而出现FileNotFoundError。因此,如果你想在Windows系统中运行该代码,你需要使用其他的方法来获取进程的内存使用情况。
在Windows系统中,你可以使用psutil
库来获取进程的内存使用情况。具体代码如下:
首先,你需要安装psutil
库,使用命令pip install psutil
即可安装。
然后你需要导入psutil
库,并修改memory_usage()
函数如下:
import psutil
import os
def memory_usage():
pid = os.getpid()
process = psutil.Process(pid)
mem_info = process.memory_info()
return "{} {}".format(mem_info.rss, mem_info.vms)
这个函数会返回'rss'和'vms',这两个值分别表示进程的实际内存和虚拟内存的使用情况。你可以根据自己的需要选择其中一个值。
修改后的完整代码如下:
import os
import psutil
def memory_usage():
pid = os.getpid()
process = psutil.Process(pid)
mem_info = process.memory_info()
return "{} {}".format(mem_info.rss, mem_info.vms)
if __name__=="__main__":
print(memory_usage())
这样就可以在Windows系统中获取进程的内存使用情况了。
如果我的回答解决了您的问题,请采纳!
以下回答引用自chatGpt, 有用的话,请采纳哇!!!/proc
文件系统是一个特殊的文件系统,它不是存储在磁盘上的文件系统,而是存储在内存中的文件系统,它提供了有关系统进程和其他信息的访问。因此,该路径只能在 Linux 系统上使用。
如果您正在 Windows 操作系统上运行 Python 代码,您需要使用另一种方法来检测进程占用内存情况。
您可以使用 psutil
模块来检测当前进程的内存使用情况。安装 psutil
模块后,您可以使用以下代码来检测当前进程的内存使用情况:
pythonCopy codeimport psutil
def memory_usage():
process = psutil.Process(os.getpid())
mem_info = process.memory_info()
return mem_info.rss / 1024 / 1024 # 返回以 MB 为单位的内存使用情况
这里,我们使用 psutil.Process
方法获取当前进程的信息,然后使用 memory_info
方法获取进程的内存信息。最后,我们将结果转换为以 MB 为单位的内存使用情况并返回。
这个路径 '/proc/{}/status' 是Linux系统中的一个路径,用于获取进程的状态信息。在Windows系统中,没有这个路径,所以会报错。
你可以使用psutil这个Python库来获取进程的状态信息,它可以在多个操作系统中使用,包括Windows和Linux。
你可以使用psutil库中的Process类来获取进程的状态信息,具体可以参考下面的代码:
import psutil
def memory_usage():
pid = os.getpid()
process = psutil.Process(pid)
memory_info = process.memory_info()
memory_usage = memory_info.rss / 1024 / 1024 # 单位换算成MB
return "{} MB".format(memory_usage)
这样就可以在Windows系统中获取进程的内存占用情况了。
FileNotFoundError: [Errno 2] No such file or directory: '/proc/11612/status'
FileNotFoundError:[Erno 2]没有这样的文件或目录:“/proc/11612/status”
这个错误通常是由于在Windows或者Mac OS系统下运行了linux系统命令下的路径方式,导致文件找不到。
这里的解题思路是:1、将“/proc/11612/status”的路径转换为Windows或Mac OS系统能够理解的命令方式
2、在现有系统中安装Linux模拟环境,从而直接运行代码