标签: ioerror

Ruby守护程序导致ActiveRecord记录器IOError

我正在Ruby中编写一个项目,它利用ActiveRecord gem进行数据库交互,我试图使用ActiveRecord::Base.logger以下代码使用该属性记录所有数据库活动

ActiveRecord::Base.logger = Logger.new(File.open('logs/database.log', 'a'))
Run Code Online (Sandbox Code Playgroud)

这适用于迁移等(由于某种原因似乎需要启用日志记录,因为它在禁用时会出现NilClass错误)但是当我尝试运行包含调用ActiveRecord对象的线程守护程序的项目时,脚本会失败并且跟随错误

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/logger.rb:504:in `write': closed stream (IOError)
Run Code Online (Sandbox Code Playgroud)

任何关于如何解决这个问题的想法将不胜感激.目前我已经开始查看其他代码,看看人们是否有其他方式以更加线程安全的方式实现ActiveRecord日志记录

谢谢

帕特里克

ruby activerecord daemons ioerror

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

MySQL-Python安装 - 无法构建鸡蛋

我正在尝试设置python mysql.我正在完成以下教程:

http://anthonyscherba.com/site/blog/django-mysql-install-mac

我很好,直到第5集.当我跑

$ python setup.py clean
Run Code Online (Sandbox Code Playgroud)

我得到了回报

 /Users/msmith/Downloads/MySQL-python-1.2.4b4/distribute-0.6.28-py2.7.egg
 Traceback (most recent call last):
 File "setup.py", line 7, in <module>
    use_setuptools()
  File "/Users/msmith/Downloads/MySQL-python-1.2.4b4/distribute_setup.py", line 145, in use_setuptools
    return _do_download(version, download_base, to_dir, download_delay)
  File "/Users/msmith/Downloads/MySQL-python-1.2.4b4/distribute_setup.py", line 125, in _do_download
    _build_egg(egg, tarball, to_dir)
  File "/Users/msmith/Downloads/MySQL-python-1.2.4b4/distribute_setup.py", line 116, in _build_egg
    raise IOError('Could not build the egg.')
IOError: Could not build the egg.
Run Code Online (Sandbox Code Playgroud)

python mysql database django ioerror

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

Errno 22:使用pyinstaller运行spec文件时无效模式('rb')或文件名:''

这是我的spec文件

# -*- mode: python -*-
a = Analysis(['final_code.py'],
             pathex=['C:\\Python27\\PyInstaller-2.1\\final_code'],
             hiddenimports=[],
             hookspath=None,
             runtime_hooks=None)
pyz = PYZ(a.pure)
exe = EXE(pyz,
      Tree('C:\\Python27\\data_req\\'),
          a.scripts,
          exclude_binaries=True,
          name='final_code.exe',
          debug=False,
          strip=None,
          upx=True,
          console=False )
coll = COLLECT(exe,
               a.binaries,
               a.zipfiles,
               a.datas,
               strip=None,
               upx=True,
               name='final_code')
Run Code Online (Sandbox Code Playgroud)

我已将其修改为包含所需的文本文件.我正在使用以下命令运行它

pyinstaller.py final_code.spec
Run Code Online (Sandbox Code Playgroud)

在我的命令提示符下.

我得到的错误是

[Errno 22] invalid mode('rb') or filename:' '
Run Code Online (Sandbox Code Playgroud)

python pyinstaller ioerror

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

使用HDFS在不同的python进程之间共享资源(文件)

所以我有一些代码试图在HDFS上找到一个资源...如果它不在那里它会计算该文件的内容,然后写它.下次访问时,阅读器可以查看文件.这是为了防止昂贵的重新计算某些功能

但是......我有几个进程同时在同一个集群上的不同机器上运行.我怀疑他们正在尝试访问相同的资源而且我遇到了一个竞争条件,导致很多错误我无法打开文件或文件存在但无法读取.

希望这个时间表能够证明我相信我的问题

  1. 进程A访问资源X.
  2. 进程A发现资源X存在并开始编写
  3. 进程B前往访问资源X.
  4. 进程A完成编写资源X ...等等

显然,我希望进程B等待进程A完成资源X,并在A完成时简单地读取它.

我想到了信号量之类的信息,但我不知道如何在不同的python进程中使用这些信息来查看相同的HDFS位置.任何帮助将不胜感激

更新:要清楚..进程A和进程B将最终计算完全相同的输出(即相同的文件名,具有相同的内容,到同一位置).理想情况下,B不应该计算它.B将等待A计算它,然后在A完成后读取输出.从本质上讲,整个过程就像使用HDFS的"长期缓存"一样.给定函数将具有输出签名的位置.任何想要输出函数的进程都将首先确定输出签名(这基本上是一些函数参数,输入等的散列).然后它将检查HDFS以查看它是否存在.如果不是......它会写入计算并将其写入HDFS,以便其他进程也可以读取它.

python race-condition ioerror hdfs

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

IOError输入溢出:使用Tkinter接口录制音频

我正在尝试做一个只有一个按钮的简单GUI应用程序:Record.

您按下按钮,录音开始.松开按钮时,录制停止并保存录制内容.

但是,单击按钮时出现以下错误:

Traceback (most recent call last):
    ...
    data = self.stream.read(self.CHUNK)
  File (...), line 608, in read
    return pa.read_stream(self._stream, num_frames, exception_on_overflow)
IOError: [Errno -9981] Input overflowed
Exception in Tkinter callback
Run Code Online (Sandbox Code Playgroud)

但是,如果没有按钮和Tkinter(这里给出的代码示例),我没有记录简单音频的问题.

这是代码:

import Tkinter as tk
import pyaudio, wave

class AppRecording:
    def __init__(self, root):
        self.root = root
        self.mouse_pressed = False
        recordingButton = tk.Button(root, text = "Record")
        recordingButton.pack()
        recordingButton.bind("<ButtonPress-1>", self.OnMouseDown)
        recordingButton.bind("<ButtonRelease-1>", self.OnMouseUp)
        self.CHUNK = 1024
        self.FORMAT = pyaudio.paInt16
        self.CHANNELS = 2
        self.RATE = …
Run Code Online (Sandbox Code Playgroud)

python exception tkinter ioerror pyaudio

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

读取URLLoader的服务器错误消息

我有一个带有以下代码的URL加载器:

public function getUploadURL():void {   
    var request:URLRequest = new URLRequest();

    var url:String = getPath();
    // Adds time to prevent caching
    url += "&time=" + new Date().getTime(); 

    request.url = url;
    request.method = URLRequestMethod.GET;

    _loader = new URLLoader();
    _loader.dataFormat = URLLoaderDataFormat.TEXT;
    _loader.addEventListener(Event.COMPLETE, getBaseURL);
    _loader.addEventListener(IOErrorEvent.IO_ERROR, onGetUploadURLError);
    _loader.addEventListener(HTTPStatusEvent.HTTP_STATUS, getHttpStatus);

    _loader.load(request);
}
Run Code Online (Sandbox Code Playgroud)

我的问题是这个请求可能是错误的,所以服务器会给我一个400 Bad Request,并提供一条消息来解释错误.如果是Event.COMPLETE,我可以在Event的"data"字段中看到服务器返回的一些消息(响应),但是如果调用了onGetUploadURLError或getHttpStatus,它只是说错误代码是400但是没有显示我与之相关的信息.

"data"字段在getHttpStatus中未定义,在onGetUploadURLError中为"".相反,在getBaseURL中,我得到:{"ResponseMetadata":{...}}我检查过,我在浏览器中得到了类似的错误请求,但我看不到它.

知道我怎么可以得到消息?

非常感谢,鲁迪

urlloader actionscript-3 ioerror

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

如何在Mac OS X上摆脱'IOError:13''权限被拒绝''

这是我试图在Mac OS X上运行的代码:

import getpass #Needed for fetching username
import shutil #Needed for moving Files
import os
var_username = getpass.getuser() #gets username and returns as variable
source_file = r"/Users/%s//Downloads/LogNLock/com.lognlock.loginhook.plist" %(var_username) #the destination of the source file
destination = r"/Library/LaunchAgents" #the target destination for the file to go
shutil.copy(source_file, destination) #moves the source file to the destination folder
Run Code Online (Sandbox Code Playgroud)

我已经google了,无法弄清楚为什么它不起作用.背景信息:它在将文件从桌面移动到文档时起作用,但我认为我需要以某种方式获得root用户权限.我现在在管理员帐户上.

python macos ioerror permission-denied osx-lion

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

Errno 13权限被拒绝:带有localhost的媒体文件夹

我收到一条消息

[Errno 13]权限被拒绝:u'/ home/.../... jpg'当我尝试在django上传文件时.但问题只有在我使用localhost /尝试时才会出现.当我使用localhost:8000运行或调试它时,我没有遇到任何问题.

当我运行脚本来设置我的数据库时,我使用函数创建文件夹.

我的代码:

def handle_uploaded_file(request,f):
    user=Users.objects.get(id_u=request.user.id)
    url=settings.MEDIA_URL+'images/'+user.mail+'/gallery/'+f.name
    fullurl=settings.MEDIA_ROOT+'images/'+user.mail+'/gallery/'+f.name
    #comprobar si existe el archivo
    if not os.path.exists(fullurl): 
        destination = open(fullurl, 'wb+') 
    ...
        destination.close()
Run Code Online (Sandbox Code Playgroud)

文件夹媒体中的权限.我想将文件上传到'images'文件夹.在这里,我看到其他人没有权限写,但up文件夹有777.那么,为什么我的脚本在创建子文件夹时会更改权限?

4 drwxrwxrwx  3 bernardo www-data 4096 ago  3 09:42 .
4 drwxrwxr-x 11 bernardo www-data 4096 jul 31 12:36 ..
4 drwxrwxr-x  5 bernardo bernardo 4096 ago  3 09:42 images
Run Code Online (Sandbox Code Playgroud)

我的http.config

ServerName localhost

WSGIPythonPath /home/bernardo/workspace/mbosoziales

Alias /media/ /home/bernardo/workspace/mbosoziales/media/
Alias /static/ /home/bernardo/workspace/mbosoziales/static/

<Directory /home/bernardo/workspace/mbosoziales/static>  
Order deny,allow
Allow from all
</Directory>

<Directory /home/bernardo/workspace/mbosoziales/media>
Order …
Run Code Online (Sandbox Code Playgroud)

media django permissions file-upload ioerror

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

无法从python中的目录打开文件

我写了一个小模块,它首先找到目录中的所有文件,然后合并它们。但是,我在从目录中打开这些文件时遇到了问题。我确保我的文件和目录名称是正确的,并且文件实际上在目录中。

下面是代码..

 seqdir = "results"
 outfile = "test.txt"

 for filename in os.listdir(seqdir):
     in_file = open(filename,'r') 
Run Code Online (Sandbox Code Playgroud)

下面是错误..

     in_file = open(filename,'r')     
     IOError: [Errno 2] No such file or directory: 'hen1-1-rep1.txt'
Run Code Online (Sandbox Code Playgroud)

python ioerror

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

IOError:[Errno 13]权限被拒绝:'/usr/local/lib/python2.7/dist-packages/finsymbols/SP500.html'

我在 python 中安装了一个 finsymbols 包

pip install finsymbols
Run Code Online (Sandbox Code Playgroud)

安装顺利。但是当我尝试使用它时,出现错误,提示权限被拒绝。我尝试过的代码是

>>>import finsymbols
>>>sp500 = finsymbols.get_sp500_symbols()
    Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.7/dist-packages/finsymbols/symbols.py", line 8, in get_sp500_symbols
    page_html = wiki_html('List_of_S%26P_500_companies', 'SP500.html')
  File "/usr/local/lib/python2.7/dist-packages/finsymbols/symbol_helper.py", line 94, in wiki_html
    save_file(file_path, wiki_html)
  File "/usr/local/lib/python2.7/dist-packages/finsymbols/symbol_helper.py", line 39, in save_file
    saved_file = open(file_path, "w")
IOError: [Errno 13] Permission denied: '/usr/local/lib/python2.7/dist-packages/finsymbols/SP500.html'
Run Code Online (Sandbox Code Playgroud)

谁能帮我解决这个问题?谢谢

python ioerror

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