标签: eoferror

python 2.6 cPickle.load导致EOFError

我使用cPickle来使用HIGHEST_PROTOCOL来挑选整数列表,

cPickle.dump(l, f, HIGHEST_PROTOCOL)
Run Code Online (Sandbox Code Playgroud)

当我尝试使用以下代码解开这个时,我得到一个EOFError.在解开前我尝试'寻找'偏移0,但错误仍然存​​在.

l = cPickle.load(f)
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

python pickle eoferror

11
推荐指数
1
解决办法
7970
查看次数

Ruby文件I/O中的EOFError是什么?

官方文件没有明确规定.我理解EOFError的意思是"文件结束错误",但究竟是什么意思呢?如果文件阅读器到达文件末尾,那对我来说听起来不是一个错误.

ruby file-io eoferror

10
推荐指数
2
解决办法
2万
查看次数

使用py2exe创建exe后,raw_input导致EOFError

从脚本创建exe后py2exe raw_input()导致EOFError.

我怎么能避免这个?

 File "test.py", line 143, in main
    raw_input("\nPress ENTER to continue ")
EOFError: EOF when reading a line
Run Code Online (Sandbox Code Playgroud)

python py2exe eoferror

6
推荐指数
1
解决办法
5052
查看次数

Python脚本中的EOFError

我有以下代码片段:

def database(self):
    databasename=""
    host=""
    user=""
    password=""
    try:
        self.fp=file("detailing.dat","rb")
    except IOError:
        self.fp=file("detailing.dat","wb")
        pickle.dump([databasename,host,user,password],self.fp,-1)
        self.fp.close()
        selffp=file("detailing.dat","rb")
        [databasename,host,user,password]=pickle.load(self.fp)

    return
Run Code Online (Sandbox Code Playgroud)

它有错误:

Traceback (most recent call last):
  File "detailing.py", line 91, in ?
    app=myApp()
  File "detailing.py", line 20, in __init__
    wx.App.__init__(self,redirect,filename,useBestVisual,clearSigInt)
  File "/usr/lib64/python2.4/site-packages/wx-2.6-gtk2-unicode/wx/_core.py", line 7473, in __init__
    self._BootstrapApp()
  File "/usr/lib64/python2.4/site-packages/wx-2.6-gtk2-unicode/wx/_core.py", line 7125, in _BootstrapApp
    return _core_.PyApp__BootstrapApp(*args, **kwargs)
  File "detailing.py", line 33, in OnInit
    self.database()
  File "detailing.py", line 87, in database
    [databasename,host,user,password]=pickle.load(self.fp)
  File "/usr/lib64/python2.4/pickle.py", line 1390, in load
    return Unpickler(file).load()
  File "/usr/lib64/python2.4/pickle.py", line 872, in …
Run Code Online (Sandbox Code Playgroud)

python pickle raw-input eoferror

5
推荐指数
2
解决办法
4万
查看次数

即使子进程已取消,MultiProcessing Pipe recv块仍会阻塞

阅读有关此主题的几个问题后,我现在知道子进程从父进程继承了文件描述符。当父母关闭连接时,这会使孩子更难收到EOFError。

但是我的情况恰恰相反,我不明白我面临的问题。

我有一个父进程,该进程启动一个子进程,并使其能够访问我创建的Pipe连接的一端。现在,当子进程完成,出现故障或其他任何情况时,所有操作都将停止并关闭连接。此时,子进程显示为已失效。

然后,我希望父进程的连接在阻塞的recv调用上抛出EOFError。但是相反,它只是坐在那里等待。

我在这里想念什么?

编辑

我认为这个例子代表了问题:

from multiprocessing import Process, Pipe
from threading import Thread
import time

class Parent(object):

    def __init__(self):
        self.parent_conn, child_conn = Pipe()
        self.child = Process(target=Child, args=(child_conn,))
        self.child.start()        

        def recv():
            try:
                self.parent_conn.recv()
            except EOFError:
                print "EOF"
            except:
                print "something else"

        # Does not work
        recv()

        # Works fine
        t = Thread(target=recv)
        t.setDaemon(True)
        t.start()

    def close(self):
        self.parent_conn.close()
        self.child.join()

class Child(object):

    def __init__(self, conn):
        conn.close()

if __name__ == "__main__":
    p = Parent()
    time.sleep(1)
    p.close()
Run Code Online (Sandbox Code Playgroud)

如果我确实使用单独的线程,则允许父级关闭其自己的连接,并且一切正常。(请注意,您仍然需要以某种方式知道子进程是如何完成的。)相反,如果我直接调用recv,它将明显阻塞,但是我怀疑一旦子进程关闭其连接,它将引发EOFError。但事实并非如此。谁能澄清?

python pipe multiprocessing eoferror

5
推荐指数
1
解决办法
4225
查看次数

对等方关闭的 rpyc 连接

我正在关注此页面上的 rpyc 教程,但在运行此代码时出现 EOFError

bgsrv = rpyc.BgServingThread(conn) #creates a bg thread to process incoming events
Run Code Online (Sandbox Code Playgroud)

我已经搜索了很多,但没有找到解决这个问题的方法。服务器和客户端运行在同一台机器上。我在 macbook pro 上运行脚本。需要帮助修复此错误。

您可以在此处找到 stream.py 的源代码。

这是回溯:

Exception in thread Thread-10:
Traceback (most recent call last):
  File"/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/threading.py", line 810, in __bootstrap_inner
    self.run()
  File"/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/threading.py", line 763, in run
    self.__target(*self.__args, **self.__kwargs)
File "/Library/Python/2.7/site-packages/rpyc-3.3.0-py2.7.egg/rpyc/utils/helpers.py", line 204, in _bg_server
    self._conn.serve(self.SERVE_INTERVAL)
File "/Library/Python/2.7/site-packages/rpyc-3.3.0-py2.7.egg/rpyc/core/protocol.py", line 387, in serve
    data = self._recv(timeout, wait_for_lock = True)
File "/Library/Python/2.7/site-packages/rpyc-3.3.0-py2.7.egg/rpyc/core/protocol.py", line 345, in _recv
    data = self._channel.recv()
File "/Library/Python/2.7/site-packages/rpyc-3.3.0-py2.7.egg/rpyc/core/channel.py", line …
Run Code Online (Sandbox Code Playgroud)

python eoferror rpyc

5
推荐指数
0
解决办法
1108
查看次数

python win32com中的EOFError

我正在运行 Sympathy for Data,这是一个基于 python 的程序。直到今天它都运行良好。我收到这样的错误消息:

File "..\Python27\lib\site-packages\win32com\client\__init__.py", line 11, in <module>
import gencache
File >"..\Python27\lib\site-packages\win32com\client\gencache.py", line 662, in <module>
_ _init_ _()
File >"..\Python27\lib\site-packages\win32com\client\gencache.py", line 56, in _ _init_ _
_LoadDicts()
File "..\Python27\lib\site-packages\win32com\client\gencache.py", line 109, in _LoadDicts
version = p.load()
EOFError
Run Code Online (Sandbox Code Playgroud)

在这里找到了一个基本上有相同问题的答案,但该解决方案对我不起作用。我在网上找到的所有解决方案都提供相同的解决方案,删除 _gen_py_ 文件夹下的内容。

我不必使用 Sympathy 运行任何程序来获取数据。即使我打开随 Sympathy for data 一起提供的 iPython,我也会收到此错误消息。

在这种情况下我真的很绝望,有人可以帮我解决吗?

python eoferror win32com

5
推荐指数
2
解决办法
1357
查看次数

为什么标准输入()会导致 EOF 错误

当我在我的代码中遇到以下问题时,我正在解决 HackerRank 上的一个问题。我在我的 Python (2.7.10) IDLE 上测试了它,它工作正常。但它在 HackerRank 上显示以下错误:

Traceback (most recent call last):
  File "solution.py", line 13, in <module>
    input_2=input()
EOFError: EOF when reading a line
Run Code Online (Sandbox Code Playgroud)

我输入了以下代码:

import sys 
input_2=""
n=int(input())
m=0
l=0
array=[]
main_array=[]
for i in range (0,n):
    inp=input()
    array=(inp.split(" "))
    main_array+=array   
for no in range(0,100000,1):    
    input_2=input()
    for m in range(0,len(main_array),2):
        l=0
        if input_2==main_array[m]:
            l+=1
            print (main_array[m]+"="+main_array[m+1])
    if l==0:
        print ("Not found")
Run Code Online (Sandbox Code Playgroud)

我不知道为什么这个错误出现在 HackerRank 引擎中。谢谢

python eoferror

5
推荐指数
1
解决办法
2万
查看次数

Python SSH Paramiko EOFError

我只有像这样的简单脚本,可以通过诺基亚路由器上的 SSH 连接并执行命令“show time”:

import paramiko
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('adres ip', port=22, username='username', password='password')
ssh_stdin, ssh_stdout, ssh_stderr = ssh.exec_command('show time')
output = stdout.readlines()
print '\n'.join(output)
ssh.close()
Run Code Online (Sandbox Code Playgroud)

登录节点成功。我看到自己在路由器上,但​​执行命令不起作用。我收到这样的错误:

Traceback (most recent call last):   File "C:\Users\pkudalsk\Desktop\pyt.py", line 6, in <module>
    ssh_stdin, ssh_stdout, ssh_stderr = ssh.exec_command('show time')   File "C:\Users\pkudalsk\Desktop\paramiko\client.py", line 479, in exec_command

    chan.exec_command(command)   File "C:\Users\pkudalsk\Desktop\paramiko\channel.py", line 63, in _check
    return func(self, *args, **kwds)   File "C:\Users\pkudalsk\Desktop\paramiko\channel.py", line 241, in exec_comman d
    self._wait_for_event()   File "C:\Users\pkudalsk\Desktop\paramiko\channel.py", line 1198, in
_wait_for_ event
    raise e EOFError …
Run Code Online (Sandbox Code Playgroud)

python ssh paramiko eoferror

5
推荐指数
1
解决办法
1292
查看次数

Python Pickling Dictionary EOFError

我在服务器上运行了几个脚本,这些脚本可以对各种字典进行pickle和unpickle.它们都使用相同的基本代码进行酸洗,如下所示:

SellerDict=open('/home/hostadl/SellerDictkm','rb')
SellerDictionarykm=pickle.load(SellerDict)
SellerDict.close()

SellerDict=open('/home/hostadl/SellerDictkm','wb')
pickle.dump(SellerDictionarykm,SellerDict)
SellerDict.close()
Run Code Online (Sandbox Code Playgroud)

除了其中一个脚本外,所有脚本运行正常.有问题的那个去各个网站并擦除数据并将其存储在字典中.这段代码运行一整天的酸洗和解毒词典,并在午夜停止.然后一个cronjob第二天早上又开始了.此脚本可以运行数周而不会出现问题,但是当脚本尝试打开字典时,由于EOFError而导致脚本每月大约一次.字典的大小通常约为80 MB.我甚至尝试在SellerDict.close()之前添加SellerDict.flush()来挑选数据以确保晚上被刷新.

有什么想法可能导致这种情况?Python非常可靠,所以我不认为这是由于文件的大小.在死亡之前代码运行良好很长时间,这让我相信可能在字典中保存了导致此问题的东西,但我不知道.

此外,如果你知道一个更好的方法来保存除了泡菜之外的词典,我愿意接受选择.就像我之前说的那样,词典不断被打开和关闭.只是为了澄清,只有一个程序将使用相同的字典,因此问题不是由试图访问同一字典的几个程序引起的.

更新:

这是我从日志文件中获得的回溯.

Traceback (most recent call last):
  File "/home/hostadl/CompileRecentPosts.py", line 782, in <module>
    main()
  File "/home/hostadl/CompileRecentPosts.py", line 585, in main
    SellerDictionarykm=pickle.load(SellerDict)
EOFError
Run Code Online (Sandbox Code Playgroud)

python dictionary pickle eoferror

4
推荐指数
2
解决办法
1万
查看次数