如何在Jupyter Notebook中导入一个Python .py 文件

8

我有一个Jupyter Notebook,我想使用我放在config.py文件中的一些凭据。这个文件与Jupyter Notebook放在同一个文件夹中。

我使用以下代码:

import config

问题是Jupyter返回了这个消息:
ModuleNotFoundError: No module named 'config.py'; 'config' is not a package

感谢您的帮助。

感谢大家的回答。我已经找到了使用Dotenv Python包解决我的需求的方法:https://pypi.org/project/python-dotenv/ - idejuan
3个回答

3
您可能需要尝试。
from config import <the_function_you_want_to_use>

如果您在配置中存储了凭据,这也应该适用于全局变量。如果您从不同的文件夹导入模块,则可以通过在文件夹中创建一个名为“__init__.py”的空文件将文件夹变成包。
__init__.py

然后将您想要用作模块的.py文件存储在那里并调用它。 我是新手,希望这可以帮助到您。


如果普通的import无法工作,为什么from config import会起作用? - C. Fennell
从你的解释中我了解到,你的项目在导入你想要的内容时出现了问题,因此使用显式调用可能会有所帮助。你究竟想要导入什么? - AureliusAtillius

1
经过一些研究,我发现使用Dotenv Python包可以解决我的需求:pypi.org/project/python-dotenv
需要做什么?插入以下行:
!pip install python-dotenv

# Credentials file
%load_ext dotenv
%dotenv
import os

然后将名为.env的隐藏文件放置在凭据所在的位置。 在我的情况下,它看起来像这样:

CLIENT_ID = "XXXX"
CLIENT_SECRET = "YYYY"

然后,在您的笔记本文件中,每当您需要加载凭据时,请使用:

CLIENT_ID = os.getenv("CLIENT_ID")
CLIENT_SECRET = os.getenv("CLIENT_SECRET")

然后你就可以开始了!

感谢 http://veekaybee.github.io/2020/02/25/secrets/ 给出的解决方案。


-1

import语句用于引入外部库以在程序中使用。我认为你可能想要读取文件,所以只要它与你的笔记本在同一个文件夹路径下,你就可以使用这个:

file = open("config.py", "r")

您可以将文件中的内容设置为变量,然后使用以下示例进行打印:
fileContents = file.read()
print(fileContents)

如果这是一个存储密码的情况,您可能希望使用csv格式并添加某种加密方式。


1
这并不一定是正确的。import 语句同样经常用于导入自定义模块,而不仅仅是外部库。 - C. Fennell

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接