我正在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日志记录
谢谢
帕特里克
我正在尝试设置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) 这是我的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) 所以我有一些代码试图在HDFS上找到一个资源...如果它不在那里它会计算该文件的内容,然后写它.下次访问时,阅读器可以查看文件.这是为了防止昂贵的重新计算某些功能
但是......我有几个进程同时在同一个集群上的不同机器上运行.我怀疑他们正在尝试访问相同的资源而且我遇到了一个竞争条件,导致很多错误我无法打开文件或文件存在但无法读取.
希望这个时间表能够证明我相信我的问题
显然,我希望进程B等待进程A完成资源X,并在A完成时简单地读取它.
我想到了信号量之类的信息,但我不知道如何在不同的python进程中使用这些信息来查看相同的HDFS位置.任何帮助将不胜感激
更新:要清楚..进程A和进程B将最终计算完全相同的输出(即相同的文件名,具有相同的内容,到同一位置).理想情况下,B不应该计算它.B将等待A计算它,然后在A完成后读取输出.从本质上讲,整个过程就像使用HDFS的"长期缓存"一样.给定函数将具有输出签名的位置.任何想要输出函数的进程都将首先确定输出签名(这基本上是一些函数参数,输入等的散列).然后它将检查HDFS以查看它是否存在.如果不是......它会写入计算并将其写入HDFS,以便其他进程也可以读取它.
我正在尝试做一个只有一个按钮的简单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) 我有一个带有以下代码的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":{...}}我检查过,我在浏览器中得到了类似的错误请求,但我看不到它.
知道我怎么可以得到消息?
非常感谢,鲁迪
这是我试图在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用户权限.我现在在管理员帐户上.
我收到一条消息
[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) 我写了一个小模块,它首先找到目录中的所有文件,然后合并它们。但是,我在从目录中打开这些文件时遇到了问题。我确保我的文件和目录名称是正确的,并且文件实际上在目录中。
下面是代码..
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 中安装了一个 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)
谁能帮我解决这个问题?谢谢
ioerror ×10
python ×7
django ×2
activerecord ×1
daemons ×1
database ×1
exception ×1
file-upload ×1
hdfs ×1
macos ×1
media ×1
mysql ×1
osx-lion ×1
permissions ×1
pyaudio ×1
pyinstaller ×1
ruby ×1
tkinter ×1
urlloader ×1