Python导入仅在从包内目录运行时才有效

时间:2017-09-19 16:12:46

标签: python import module python-import

我有一个使用gentle来转录某些音频的python脚本。

目前我必须将文件复制到温和的回购中,然后我可以import gentle并在代码中稍后使用gentle

但是我不想将我的文件复制到温和的目录中。我尝试将导入更改为import gentle.gentle,但无论哪种方式,从父目录运行我的脚本时都会出现以下错误:

Traceback (most recent call last):
  File "process_text.py", line 6, in <module>
    import gentle.gentle  # or just import gentle
  File "/usr/local/lib/python2.7/dist-packages/gentle/__init__.py", line 2, in <module>
    from resources import Resources
  File "/usr/local/lib/python2.7/dist-packages/gentle/resources.py", line 4, in <module>
    from util.paths import get_resource, ENV_VAR
ImportError: No module named util.paths

是否有一种简单的方法可以使用该模块而无需将我的脚本复制到其目录中?谢谢!

1 个答案:

答案 0 :(得分:1)

此问题有很多修复,请参阅文档的教程页面以获取更多信息https://docs.python.org/3/tutorial/modules.html

基本上,如果gentle是可安装pip的,您可能想尝试使用以下方法安装它:

pip install --user gentle

或者您可能想要创建一个condavirtualenv的环境。 或者,您可以设置PYTHONPATH环境变量以包含所需的路径,例如

PYTHONPATH="/path/to/lib:$PYTHONPATH" python /path/to/script.py