标签: ioerror

在os.system()期间会导致"IOError:[Errno 9]错误文件描述符"的原因是什么?

我正在使用一个科学软件,包括一个os.system()用于运行另一个科学程序的Python脚本.在子进程运行时,Python在某些时候打印以下内容:

close failed in file object destructor:
IOError: [Errno 9] Bad file descriptor
Run Code Online (Sandbox Code Playgroud)

我相信此消息会在os.system()返回的同时打印出来.

我现在的问题是:

哪种情况会导致这种类型的IOError?它究竟意味着什么?对于已被调用的子进程意味着什么os.system()

python posix subprocess file-descriptor ioerror

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

Python的"open()"会为"找不到文件"抛出不同的错误 - 如何处理这两个异常?

我有一个脚本,提示用户输入文件名(要打开的文件),如果当前目录中不存在该文件,则再次提示用户.这是简短的版本:

file = input("Type filename: ")

...
try:
    fileContent = open(filename, "r")
    ...
except FileNotFoundError:
    ...
Run Code Online (Sandbox Code Playgroud)

当我在Python 3.3x中使用我的MacOS X测试我的脚本时,当我故意键入错误的文件名时它完全正常(它在"expect"下执行套件).

但是,当我想在Python 3.2x中的Windows计算机上运行我的代码时,我收到一条错误,指出未定义"FileNotFoundError".因此,Windows上的Python 3.2认为"FileNotFoundError"是一个变量,程序退出并出现错误.

我发现如果输入文件名无效,Windows上的Python 3.2会抛出"IOError".我在我的Linux机器上用Python 2.7测试过,它也是一个IOError.

我现在的问题是,代码用

except "FileNotFoundError":
Run Code Online (Sandbox Code Playgroud)

将无法在Windows的Python 3.2上运行,但如果我将其更改为

except "IOError":
Run Code Online (Sandbox Code Playgroud)

它不再适用于我的Mac.

我怎么能解决它?我能想到的唯一方法是使用just except,我通常不想要.

python filenotfoundexception ioerror python-3.x

42
推荐指数
3
解决办法
8万
查看次数

为什么mod_wsgi无法写入数据?IOError:无法写入数据

可能导致此错误的原因:

$ sudo tail -n 100 /var/log/apache2/error.log'

[Wed Dec 29 15:20:03 2010] [error] [client 220.181.108.181] mod_wsgi (pid=20343): Exception occurred processing WSGI script '/home/username/public_html/idm.wsgi'.  
[Wed Dec 29 15:20:03 2010] [error] [client 220.181.108.181] IOError: failed to write data  
Run Code Online (Sandbox Code Playgroud)

这是WSGI脚本:

$ cat public_html/idm.wsgi 
import os
import sys

sys.path.append('/home/username/public_html/IDM_app/')

os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'

import django.core.handlers.wsgi

application = django.core.handlers.wsgi.WSGIHandler()
Run Code Online (Sandbox Code Playgroud)

为什么Django无法写入数据?

我正在运行Django 1.2.4

django mod-wsgi ioerror

39
推荐指数
3
解决办法
3万
查看次数

PIL无法将模式F写入jpeg

我正在拍摄jpg图像并使用numpy的fft2来创建/保存新图像.但是它会抛出此错误

"IOError: cannot write mode F as JPEG" 
Run Code Online (Sandbox Code Playgroud)

PIL中的CMYK和JPEG文件有问题吗?

p = Image.open('kibera.jpg')
bw_p = p.convert('L')
array_p = numpy.asarray(bw_p)
fft_p = abs(numpy.fft.rfft2(array_p))
new_p = Image.fromarray(fft_p)
new_p.save('kibera0.jpg')
new_p.histogram()
Run Code Online (Sandbox Code Playgroud)

jpeg fft mode ioerror python-imaging-library

33
推荐指数
3
解决办法
4万
查看次数

I/O错误:SSO失败:未加载本机SSPI库

我正在尝试运行以下代码:

import java.sql.DriverManager;

public class Connect {
    public static void main(String[] args){
        try{
            String databaseDriver = "net.sourceforge.jtds.jdbc.Driver";
            Class.forName(databaseDriver);
        }
        catch (Exception e) {
            e.printStackTrace();
        }

        try{
            String url = "jdbc:jtds:sqlserver://BHX:1433/Forecast;instance=SQLEPXRESS";
            java.sql.Connection con = DriverManager.getConnection(url);
            System.out.println("Connection");
        }
        catch (Exception e){
            e.printStackTrace();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我的SQL服务器在机器BHX上的端口1433上运行.

我得到的错误信息如下:

java.sql.SQLException: I/O Error: SSO Failed: Native SSPI library not loaded. Check the     java.library.path system property.
at net.sourceforge.jtds.jdbc.TdsCore.login(TdsCore.java:615)
at net.sourceforge.jtds.jdbc.ConnectionJDBC2.<init>(ConnectionJDBC2.java:352)
at net.sourceforge.jtds.jdbc.ConnectionJDBC3.<init>(ConnectionJDBC3.java:50)
at net.sourceforge.jtds.jdbc.Driver.connect(Driver.java:185)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at Connect.main(Connect.java:14)
Caused by: java.io.IOException: SSO …
Run Code Online (Sandbox Code Playgroud)

java sql-server jdbc ioerror

31
推荐指数
3
解决办法
7万
查看次数

pip安装PyQt IOError

我正在尝试使用pip安装PyQt包,但是我收到此错误:

~$ pip install PyQt

Downloading/unpacking PyQt  
Downloading PyQt-x11-gpl-4.8.3.tar.gz
(9.8Mb): 9.8Mb downloaded   Running
setup.py egg_info for package PyQt
    Traceback (most recent call last):
      File "<string>", line 14, in <module>
    IOError: [Errno 2] No such file or directory:
'/home/john/build/PyQt/setup.py'
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):

  File "<string>", line 14, in
<module>

IOError: [Errno 2] No such file or
directory:
'/home/john/build/PyQt/setup.py

---------------------------------------- Command python setup.py egg_info
failed with error code 1 Storing
complete log in
/home/john/.pip/pip.log
Run Code Online (Sandbox Code Playgroud)

python pip pyqt ioerror setup.py

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

何时可能抛出IOError?

我从未见过IOError抛出一个案例.文档IOError对此的唯一说法是:

发生严重I/O错误时抛出.

没有任何子类或任何其他明显的东西.

有没有什么时候IOError会被抛出java?可能导致什么?

(这不应该被混淆IOException- IOException被广泛使用,并且是常用的;我知道.我想知道不太常见IOError).

java ioerror

25
推荐指数
3
解决办法
6058
查看次数

Python异常处理

C有perror和errno,它打印并存储遇到的最后一个错误.这在执行文件io时很方便,因为我不必将fstat()作为fopen()参数失败的每个文件向用户提供调用失败的原因.

我想知道在python中优雅地处理IOError异常时获取errno的正确方法是什么?

In [1]: fp = open("/notthere")
---------------------------------------------------------------------------
IOError                                   Traceback (most recent call last)

/home/mugen/ in ()

IOError: [Errno 2] No such file or directory: '/notthere'


In [2]: fp = open("test/testfile")
---------------------------------------------------------------------------
IOError                                   Traceback (most recent call last)

/home/mugen/ in ()

IOError: [Errno 13] Permission denied: 'test/testfile'


In [5]: try:
   ...:     fp = open("nothere")
   ...: except IOError:
   ...:     print "This failed for some reason..."
   ...:     
   ...:     
This failed for some reason...

python exception errno ioerror

21
推荐指数
3
解决办法
6万
查看次数

Region:IOError:[Errno 22]无效模式('w')或文件名

我不知道为什么,但出于某种原因,每当我在输出文件的文件名中有"region"时,它就会给我这个错误:

IOError:[Errno 22]无效模式('w')或文件名:'path\regionlog.txt'

它为"region.txt","logregion.txt"等执行此操作.

class writeTo:
    def __init__(self, stdout, name):
       self.stdout = stdout
       self.log = file(name, 'w') #here is where it says the error occurs

output = os.path.abspath('path\regionlog.txt')
writer = writeTo(sys.stdout, output) #and here too
Run Code Online (Sandbox Code Playgroud)

为什么是这样?我真的想将我的文件命名为"regionlog.txt",但它不断出现这个错误.有办法解决吗?

python ioerror

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

多处理IOError:错误的消息长度

IOError: bad message length在向map函数传递大参数时得到了一个.我怎么能避免这个?我设置N=1500或更大时会发生错误.

代码是:

import numpy as np
import multiprocessing

def func(args):
    i=args[0]
    images=args[1]
    print i
    return 0

N=1500       #N=1000 works fine

images=[]
for i in np.arange(N):
    images.append(np.random.random_integers(1,100,size=(500,500)))

iter_args=[]
for i in range(0,1):
    iter_args.append([i,images])

pool=multiprocessing.Pool()
print pool
pool.map(func,iter_args)
Run Code Online (Sandbox Code Playgroud)

在文档中multiprocessingrecv_bytes一个引发IOError 的函数.可能是因为这个吗?(https://python.readthedocs.org/en/v2.7.2/library/multiprocessing.html)

编辑 如果我使用imagesnumpy数组而不是列表,我得到一个不同的错误:SystemError: NULL result without error in PyObject_Call.有点不同的代码:

import numpy as np
import multiprocessing

def func(args):
    i=args[0]
    images=args[1]
    print i
    return 0

N=1500 …
Run Code Online (Sandbox Code Playgroud)

python numpy pool multiprocessing ioerror

21
推荐指数
2
解决办法
5441
查看次数