无法在其他文件夹中调用模块

时间:2018-07-18 11:38:37

标签: python directory python-import

我克隆了a repository of a Facebook research project,并尝试运行<!DOCTYPE html> <html <?php language_attributes(); ?>> <?php get_template_part('templates/head'); ?> <body <?php body_class(); ?>> <?php get_template_part('templates/fb'); ?> <?php get_template_part('templates/header'); ?> <div id="home-about-us"> ... </div><!-- #home-about-us --> <div id="home-pricing"> ... </div><!-- #home-pricing --> <div id="home-news"> ... </div><!-- #home-news --> </body> <?php get_template_part('templates/footer' ); ?> </html> 以启动自述文件中所述的程序。但是,我始终遇到以下问题python scripts/pipeline/interactive.py。确实,我用ModuleNotFoundError调用的文件需要另一个不在同一目录中的文件。

这是完整的错误:

python

这是. ├── drqa │   ├── pipeline │   │   └── __pycache__ │   ... ... ├── scripts │   ├── convert │   ├── distant │   ├── pipeline │   ├── reader │   └── retriever 脚本:

interactive.py

我很担心,因为就Facebook研究团队所做的工作而言,这项工作可能很棒。我一定错过了什么。

这可能与以下事实有关:我对自述文件的这一部分不完全了解:

  

注意:requirements.txt包含所有可能需要的子集   包。根据您要运行的内容,可能需要安装   额外的软件包(例如spacy)。

     

如果您使用CoreNLPTokenizer或SpacyTokenizer,则还需要   分别下载Stanford CoreNLP罐子和spaCy en模型。   如果您使用Stanford CoreNLP,请在Java CLASSPATH中放入jar   环境变量,或通过编程方式设置路径:

from termcolor import colored
from drqa import pipeline
from drqa.retriever import utils
     

重要提示:默认标记器是CoreNLP,因此您需要在   您的CLASSPATH来运行README示例。

     

例如:import drqa.tokenizers drqa.tokenizers.set_default('corenlp_classpath', '/your/corenlp/classpath/*')

     

如果尚未下载CoreNLP,则可以运行:

     

export CLASSPATH=$CLASSPATH:/path/to/corenlp/download/*

     

验证它是否运行:

./install_corenlp.sh
     

为方便起见,文档阅读器,检索器和管道模块   如果未提供模型参数,将尝试加载默认模型。看到   下面提供了下载这些模型的信息。

如果我确实安装了from drqa.tokenizers import CoreNLPTokenizer tok = CoreNLPTokenizer() tok.tokenize('hello world').words() # Should complete immediately ,则因为我不知道./install_corenlp.sh是什么而无法导出类路径。

1 个答案:

答案 0 :(得分:0)

从根目录“。”中使用python调用脚本。并添加到您的环境中:

$ export PYTHONPATH=".":$PYTHONPATH

以便python可以知道'。'是source root