【发布时间】:2016-12-28 10:27:12
【问题描述】:
我在~/.local/lib/python2.7/site-packages 目录中有一个python 包dateutil 以及/usr/lib/python2.7/dist-packages/dateutil 中的一个。当我尝试从kalibr(一个相机校准工具,我下载了CDE)运行可执行文件时,dateutil 中的rrule.py 包在~/.local/lib/python2.7/site-packages 中抛出错误“ImportError: No module named fractions”。我可以通过删除上述 dateutil 包(它使用 /usr/lib/python2.7/dist-packages/dateutil 中的那个)来运行 kalibr,但我担心这会对其他项目产生一些影响。
所以我认为这里的基本问题是python更喜欢~/.local/lib/python2.7/site-packages中的dateutil包而不是/usr/lib/python2.7/dist-packages/dateutil中的包。
如何让 python 更喜欢后者?
(我使用的是 Ubuntu 16.04)
【问题讨论】:
-
你试过从python控制台导入
fractions吗?因为它在python库中。应该在任何地方工作。 -
问题是我运行了一个可执行文件,它调用了一个python脚本..所以我不能使用python控制台
-
@takahashi 你的
PYTHONPATH应该是相同的,如果你的可执行文件与你启动 REPL 时的环境相同,所以不管你是否使用 REPL .我觉得很奇怪你的依赖项不能导入fractions。他们应该能够,特别是因为删除您的dateutil的用户本地安装导致您使用标准安装,这表明您的PYTHONPATH应该是正确的。你应该import fractions然后help(fractions) 来查看你在 REPL 中使用的版本。
标签: python python-2.7 ubuntu python-dateutil