R-markdown:python日志记录包似乎是问题的根源
我面临着一个奇怪的问题,可以追溯到pythonR-markdown:python日志记录包似乎是问题的根源,python,virtualenv,r-markdown,Python,Virtualenv,R Markdown,我面临着一个奇怪的问题,可以追溯到python日志记录包。让我简单地解释一下我想做什么:目标是用python创建html报告。我使用的是R包,它使用本地virtualenv运行python代码 问题: 我一安装pythonlogging包,rmarkdown在加载matplotlib时就会遇到问题。我已经编写了一个小的测试脚本来重现这个示例 我的系统: Ubuntu 18.04仿生版 Python 2.7.15rc1 测试“1”脚本(无日志记录): 创建一个新的virtualenv(ven
日志记录
包。让我简单地解释一下我想做什么:目标是用python创建html报告。我使用的是R包,它使用本地virtualenv运行python代码
问题:
我一安装pythonlogging
包,rmarkdown在加载matplotlib
时就会遇到问题。我已经编写了一个小的测试脚本来重现这个示例
我的系统:
- Ubuntu 18.04仿生版
- Python 2.7.15rc1
日志记录):
- 创建一个新的virtualenv(
venv
)
- 使用
venv/bin/pip
安装matplotlib
- 运行
networkite::import
(最后通过rmarkdown::render
)
测试“2”脚本(使用日志记录):
- 创建一个新的virtualenv(
venv
)
- 除第一次测试外:通过
venv/bin/pip
安装日志记录
- 使用
venv/bin/pip
安装matplotlib
- 运行
networkite::import
(最后通过rmarkdown::render
)
已安装的模块(virtualenv):
模块(matplotlib)
输出是通过networkite::import
加载模块的成功消息。可以看到,只有一个测试失败,其中virtualenv与安装的logging
python模块一起使用
有人知道这些问题的原因吗?我花了相当长的时间来确定错误的来源,但我现在有点迷路了
测试脚本以再现错误:
这里有一个小的bash/shell脚本来重现我的测试
#!/bin/bash
# New virtual environment and install matplotlib
echo " ----------- no logging package installed ------------"
if [ -d venv ] ; then rm -rf venv ; fi
virtualenv venv &>/dev/null > /dev/null
venv/bin/pip install matplotlib > /dev/null
# Print installed packages
Rscript -e "reticulate::use_python('venv/bin/python'); reticulate::import('matplotlib')"
Rscript -e "reticulate::import('matplotlib')"
# New virtual environment and install logging and matplotlib
echo " --------- with logging package installed ------------"
if [ -d venv ] ; then rm -rf venv ; fi
virtualenv venv > /dev/null
venv/bin/pip install logging > /dev/null
venv/bin/pip install matplotlib > /dev/null
# Print installed packages
Rscript -e "reticulate::use_python('venv/bin/python'); reticulate::import('matplotlib')"
Rscript -e "reticulate::import('matplotlib')"
我最初认为这与“问题”有关,但解决方案不起作用
请提前感谢!
R记录2.3版Python库中包含的标准模块。您不能从PyPI安装它。请尽快将其删除:
pip uninstall logging
#!/bin/bash
# New virtual environment and install matplotlib
echo " ----------- no logging package installed ------------"
if [ -d venv ] ; then rm -rf venv ; fi
virtualenv venv &>/dev/null > /dev/null
venv/bin/pip install matplotlib > /dev/null
# Print installed packages
Rscript -e "reticulate::use_python('venv/bin/python'); reticulate::import('matplotlib')"
Rscript -e "reticulate::import('matplotlib')"
# New virtual environment and install logging and matplotlib
echo " --------- with logging package installed ------------"
if [ -d venv ] ; then rm -rf venv ; fi
virtualenv venv > /dev/null
venv/bin/pip install logging > /dev/null
venv/bin/pip install matplotlib > /dev/null
# Print installed packages
Rscript -e "reticulate::use_python('venv/bin/python'); reticulate::import('matplotlib')"
Rscript -e "reticulate::import('matplotlib')"
pip uninstall logging