尽管已安装但未找到模块文件I / O

问题描述 投票:0回答:1

我正在尝试从公共资源访问一些数据,但是尽管使用pip安装了模块fileio,但仍无法正常工作。这是我的代码:

from fileio import read
import gzip
odffn = 'test-data/Level1_IC59_data_Run00115150_Part00000000.odf.gz'
f = gzip.open(odffn)
ev = read(f)
hit_dist = list()

while ev :
    # do some analysis with the event
    hit_dist.append(len(ev.hits))
    # get the next event
    ev = read(f)

import pylab
pylab.hist(hit_dist,30,range=(0,1000), log=True, histtype='step')
pylab.title('IceCube Hit Distribution')
pylab.xlabel('nhit')
pylab.savefig('nhits.png')

我收到以下错误:

from fileio import read
ModuleNotFoundError: No module named 'fileio'

但是,我已经使用pip安装程序进行了检查,

python -m pip install fileio

我得到模块已经安装。我认为PATH并不是问题,因为它可以与所有其他模型(即numpy)一起很好地工作,所以我不太确定可能是什么问题。预先感谢您的任何见解。

python libraries
1个回答
0
投票

我从[p0]的点开始看,从我的看到,这似乎不是合法的软件包。从pip安装时,它不会安装任何可导入的Python模块或软件包。它所做的全部工作都会在fileio下创建一个骨架目录。

我认为您应该退后一步,重新评估这段代码在做什么:

site-packages

这似乎很好(忽略从fileio的导入),直到行:from fileio import read import gzip odffn = 'test-data/Level1_IC59_data_Run00115150_Part00000000.odf.gz' f = gzip.open(odffn) ev = read(f) hit_dist = list() 。使用此功能读取gzip返回的文件对象的目的是什么?该对象具有自己的一组应能完成此工作的读取方法:

ev = read(f)

假设这是一个文本文件,应将整个内容读入字符串列表,每行一个。您也可以缓冲它:

import gzip
odffn = 'test-data/Level1_IC59_data_Run00115150_Part00000000.odf.gz'
f = gzip.open(odffn)
lines = f.readlines()

或缓冲整行:

buf_size = 100
buf = f.read(buf_size)
while buf:
    <do something with 1-100 characters of input>
    buf = f.read(buf_size)
© www.soinside.com 2019 - 2024. All rights reserved.