我的项目目录结构如下。当我从package 1
运行脚本时,它会在logs
目录中创建日志,但当我从测试运行时,它不能文件化。在
/project
__init__.py
/flask_app
__init__.py
/scripts
__init__.py
logging.config.py
/package1
__init__.py
mypython.py
/logs
logging.log
/tests
__init__.py
test_mypython.py
mypython.py
代码:
当我运行我的python.py从测试中发出命令
py.test
我得到的答复是
[Errno 2] No such file or directory:
/home/mac/project/flask_app/logs/logging.log
这显然是错误的,因为它试图从测试目录中找到路径
到目前为止我已经试过了(我的python.py)使用
log_file = pkg_resource.resource_filename(__name__, '../logs/logging.log')
self.logger = configure_logger('log_handler',log_file)
我也试过了
package_dir = os.path.dirname(os.path.abspath(__file__))
log_file=os.path.join(os.path.dirname(__file__),'../logs/logging.log')
他们似乎都不管用。如果我将目录改为mypackage1,然后运行py.test
,那么一切都正常。我不想这样,因为我有其他单元测试在测试目录。我现在很沮丧。感谢有人能指出我的代码有什么问题。我认为包资源应该解决。显然没有。提前谢谢
使用与模块相关的路径配置日志记录(不指向当前目录):
或者在使用相对路径配置日志记录之前创建
^{pr2}$logs
目录:相关问题 更多 >
编程相关推荐