python36._pth未被识别

时间:2017-04-17 23:02:15

标签: python windows python-3.x

我在没有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文件工作有什么误解?

1 个答案:

答案 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

之类的内容来完成此操作