我在没有admin privs的情况下在Windows上使用python36。
我创建了一个简单的脚本tester.py
import petl as etl
fnar = [['foo','bar'],
['weebl','woobl']]
print(etl.fromcolumns(fnar).lookall())
在命令行上,我将petl安装到目录。
pip install petl -t lib
当我检查时,它就在那里。
2017-04-17 06:27 PM <DIR> petl
2017-04-17 06:27 PM <DIR> petl-1.1.1.dist-info
我想使用该目录查找我的petl,因此我创建了一个python36._pth file。
.
lib
import site
当我尝试运行我的脚本时,它无法找到它!
>py tester.py
Traceback (most recent call last):
File "tester.py", line 2, in <module>
import petl as etl
ModuleNotFoundError: No module named 'petl'
我对让._pth文件工作有什么误解?
答案 0 :(得分:0)
不幸的是,如果.pth
个文件放在python -m site
,其他所显示的标准位置之一,而不是当前工作目录,则只会对''
个文件进行评估。我不记得细节,但我认为Python首先运行这些标准位置,运行它在那里找到的任何.pth文件,然后将sys.path
(当前工作目录)添加到.pth
的开头。 。这意味着您无法通过在启动脚本的目录中添加import
文件来扩展路径。
我知道将相对位置添加到系统路径的唯一方法是在sys.path.append( os.path.join(os.path.dirname(__file__), 'lib'))
语句之前将它们设置在主脚本的顶部。在这种情况下,您可以使用 name, car
foo, bmw
bar, audi
baz, tesla
foobaz, bmw
。