为什么我会收到 IOError: [Errno 13] Permission denied?

6 python permissions ioerror permission-denied python-2.7

我正在为代码创建日志文件,但出现以下错误:

[2013 年 6 月 11 日星期二 17:22:59] [错误] [客户端 127.0.0.1] 导入 mainLCF
[Tue Jun 11 17:22:59 2013] [error] [client 127.0.0.1] 文件“/home/ai/Desktop/home/ubuntu/LCF/GA-LCF/mainLCF.py”,第 10 行,在 
[Tue Jun 11 17:22:59 2013] [error] [client 127.0.0.1] logging.basicConfig(filename='genic.log',level=logging.DEBUG,format='%(asctime)s %(message) s', datefmt='%m/%d/%Y %I:%M:%S %p')
[Tue Jun 11 17:22:59 2013] [error] [client 127.0.0.1] 文件“/usr/lib/python2.7/logging/__init__.py”,第 1528 行,在 basicConfig 中
[2013 年 6 月 11 日星期二 17:22:59] [错误] [客户端 127.0.0.1] hdlr = FileHandler(filename, mode)
[2013 年 6 月 11 日星期二 17:22:59] [错误] [客户端 127.0.0.1] 文件“/usr/lib/python2.7/logging/__init__.py”,第 901 行,在 __init__
[2013 年 6 月 11 日星期二 17:22:59] [错误] [客户端 127.0.0.1] StreamHandler.__init__(self, self._open())
[2013 年 6 月 11 日星期二 17:22:59] [错误] [客户端 127.0.0.1] 文件“/usr/lib/python2.7/logging/__init__.py”,第 924 行,在 _open
[Tue Jun 11 17:22:59 2013] [error] [client 127.0.0.1] stream = open(self.baseFilename, self.mode)
[2013 年 6 月 11 日星期二 17:22:59] [错误] [客户端 127.0.0.1] IOError:[Errno 13] 权限被拒绝:'/genic.log'

我已经检查了我想要制作日志的特定文件夹中的权限,但仍然收到错误。我的代码是:(名称是 mainLCF.py)

导入日志
导入系统


logging.basicConfig(filename='generic.log',level=logging.DEBUG,format='%(asctime)s %(message)s', datefmt='%m/%d/%Y %I:%M: %S %p')
logging.debug("遗传算法的开始")

sys.path.append("/home/ai/Desktop/home/ubuntu/LCF/ws_code")

进口黑板
从pyevolve进口*
def eval_func(染色体):
     这里有一些功能

我的系统的文件结构是:

/ 
 家
  爱
   桌面
     家
      乌本图
       LCF
        ws_code GA-LCF
           blackboard.py main-LCF.py

我正在从 ws_code 中的另一个函数 lcf.py 调用 mainLCF.py 。

小智 1

您需要使用logging.handlers python module 更改日志文件路径。就我而言,我做了以下事情:

import logging
from logging.handlers import RotatingFileHandler
 import  blackboard

WEBAPP_CONSTANTS = {
'LOGFILE': '/home/ai/Desktop/home/ubuntu/LCF/GA-LCF/ga.log',
}
def getWebAppConstants(constant):
     return WEBAPP_CONSTANTS.get(constant, False)

LOGFILE = getWebAppConstants('LOGFILE')
log_handler = RotatingFileHandler(LOGFILE, maxBytes=1048576, backupCount=5)
log_handler.setFormatter(logging.Formatter( '%(asctime)s %(levelname)s: %(message)s ' '[in %(pathname)s:%(lineno)d]'))
applogger = logging.getLogger("GA")
applogger.setLevel(logging.DEBUG)
applogger.addHandler(log_handler)
applogger.debug("Starting of Genetic Algorithm")

from pyevolve import *

def eval_func(chromosome):
     some function here
Run Code Online (Sandbox Code Playgroud)

它起作用了。但是我仍然不知道为什么之前尝试在根目录中创建 Genetic.log 。