【发布时间】:2019-01-28 10:43:33
【问题描述】:
我遇到了一个相当有趣的情况:我在一个大型的科学合作中工作,其主要软件包基于 C++ 和 python(仍然是 2.7.15)。这种协作也有多个服务器(SL6)来运行框架。由于我最近加入了合作,我收到了有关如何设置和运行软件的说明。一切都在服务器上完美运行。现在,有理由不连接到服务器来执行简单的任务或代码开发,而是最好在本地笔记本电脑上做这些事情。因此,我根据收到的配方设置了一个虚拟机(docker),安装了一些东西(fuse、cvmfs、docker 映像等),并以这种方式设法将我的 MacBook(OSX 10.14.2)连接到为了编译和运行软件,需要获取一些库的服务器。 2小时后它确实编译了!到目前为止一切顺利..
现在有趣的部分来了:您通过执行一个特定的 python 脚本来运行软件,该脚本作为另一个 python 脚本的参数。还不好笑。但是在这个相互采购的大量 python 脚本中的某个地方,有一个非常简单的任务:
import logging
variable = logging.DEBUG
这是在名为 Logging.py 的脚本中编写的。所以脚本和库只有第一个字母不同:l 或 L。在服务器上,这运行非常顺利。在我的本地 VM 设置上,我收到错误
AttributeError: 'module' 对象没有属性 'DEBUG'
我检查了 python 版本 (which python) 和日志库的位置 (print logging.__file__),在这两种设置中,我得到的两个命令的结果相同。因此,运行相同的 python 版本,并获取相同的日志库,但在一种情况下,与获取库的文件的名称混淆。
所以我想知道,是否有一些“约定文件”(如 vi 的 .vimrc)来源于某个地方,可以通过将一些容差参数设置为其他值来解决这个问题......?
非常感谢您的帮助! 康尼
【问题讨论】:
-
MacOS 文件系统默认不区分大小写。
-
嗯!所以我采购的python版本无关紧要(我从服务器采购那个),无论如何它都不区分大小写,我无能为力让它运行吗?我想我应该“将日志导入为 loggingLib”并相应地破解代码。但是有没有办法避免呢?
-
我猜你不能改变
Logging.py模块的名字?
标签: python macos python-2.7 logging