当我运行脚本pyhton path/to/app.py
时,目录path/to
会放在python将查找要导入的模块的位置列表的前面。
有没有办法强迫python不这样做?那就是运行一个脚本而不将其目录放在导入路径上(或者将其添加为最低优先级而不是最高优先级)?
原因是在这个目录中我有另一个名为threading
的模块,我的脚本导入logging
,它自己发出import threading
然后解析为我的自定义threading
模块而不是内置的:
$ tree
.
└── app
├── main.py
└── threading.py
$ cat app/main.py
import logging
python app/main.py
会产生
Traceback (most recent call last):
File "app/main.py", line 2, in <module>
import logging
File "/usr/lib/python2.7/logging/__init__.py", line 201, in <module>
_lock = threading.RLock()
AttributeError: 'module' object has no attribute 'RLock'
答案 0 :(得分:0)
您似乎有两种选择:
family.SelectMany(
p => p.Children.GroupBy(c => c.Id)
.Select(g => g.OrderByDescending(c => c.Value).First()),
(p,c) => new { Parent = p, Child = c })
以首先给出python包。很容易做到。它只是sys.path
个字符串。做一些列表操作以在最后添加第一个项目。list
。如果我在你的位置,我会选择第二个选项,因为它有助于长期保持代码清洁。