写了个模块 a.py 在同一级目录下,有一个配置文件 a.conf
然后a里面是这样读取的: os.path.dirname( os.path.realpath(file) ) + a.conf
然后在另外一个目录里面,有一个 b.py 需要引用 a.py
这个时候,我在 b.py 的目录里,建了一个软连接到 a.py
一开始运行 b.py 没问题
第二次运行 b.py 的时候,说配置文件读取不到了
后来,删除了 b.pyc ,再次运行,还是可以
但只要有 pyc文件以后,停掉运行就找不到配置问了,请问这个是不是 BUG 啊?
py 和 pyc 结果没有一致性呐。
顺便求解决方案:模块如何载入自己的配置文件。
1
glasslion 2015-03-11 20:39:29 +08:00
用软链接来做包管理, 脑洞太大
|
2
invite OP @glasslion 以前用软连接简化了N多操作,这次也想起来试试,结果一开始以为OK了,结果还是有点问题,现在网上搜了下,用 -B 来不让解析器生成 pyc 文件。
|
4
14 2015-03-11 21:16:21 +08:00
1. 配置文件完全可以用Python写啊就像Django的settings.py,这样很方便导入,功能也强大无数倍
2. 如果你要让a.py获取这个脚本所在的绝对目录,这样写os.path.split(os.path.realpath(__file__))[0] 3. 软链接早晚出事+10086 |
5
invite OP os.path.split(os.path.realpath(__file__))[0] 这个跟我那个表达的意思,不是一个么?
PS: 正文里 V2EX 自动把双下划线给变成粗体了。 软连接,之前用的,说实话还真好用。 特别各种应用部署升级的时候。超级方便。 只是不知道为什么pyc文件跟py文件执行的语义不一样。 |
7
14 2015-03-11 22:03:48 +08:00 via Android
|