【问题标题】:Python, add an external library in an external file which save functionsPython,在保存函数的外部文件中添加一个外部库
【发布时间】:2018-03-08 13:21:58
【问题描述】:

我有一个 Python 程序,它调用一个包含运行主程序的函数的外部文件。 (外部文件与主文件在同一目录下。)

这些函数需要调用库jsonos;但是,如果我将 import jsonimport os 放在开头,则此文件不会加载这些库。

我必须把需要外部库的函数放在主文件中。

这是我的代码示例:

def acceder_archivos(param1,param2,param3):
    while param3 == True:
        if os.path.exists(param1) and os.path.exists(param2):
            try: 
                obtener_sentimientos(param1,param2)
                param3 = False #salimos del while.
                print('existe:',param3)
            except:
                #manejar el error.
                print('Error al abrir el archivo.')
        else:
            print('Por favor, introduzca el nombre de un fichero que ...")
            param3 = False
            file_sents,file_salida,existe = cargar_archivos()
            acceder_archivos(file_sents,file_salida,existe)

在这段代码中,函数需要调用os 库,如果函数在主文件中,它就可以工作。但是如果这个函数在一个外部文件中,它就不会运行。

有什么解决办法吗?我没有找到任何答案。

非常感谢。

【问题讨论】:

  • 您导入的文件应该完全能够自己导入文件。请提供一个minimal reproducible example 来证明您的问题。
  • 谢谢你的回答,但没有运行;在写这个问题之前我试过了。该代码是完整的。您可以从另一个文件中调用它,并且您会从主文件中获得“NameError: name 'os' is not defined”。
  • 我已经意识到如果我使用 Spyder 而不是 Jupyter,我导入的文件能够导入文件然后程序运行。我不明白为什么不在 Jupyter 中运行。

标签: python external libraries


【解决方案1】:

尝试添加:

import sys
sys.path.append('.')

我不完全确定为什么会这样,但我遇到了类似的问题,这为我解决了问题。

【讨论】:

  • 抱歉,没有运行。我在包含函数但没有更改的文件中写了这些行:给出错误“NameError:名称'os'未定义”。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-20
  • 2020-02-27
  • 1970-01-01
  • 2013-05-05
  • 2018-06-12
相关资源
最近更新 更多