在jupyter笔记本中导入本地模块

时间:2018-04-26 13:44:09

标签: python-3.x jupyter-notebook

有关导入本地创建的模块的基本问题。

我无法导入本地创建的模块。该模块存在于当前工作目录

enter image description here

enter image description here

我错过了什么吗?

4 个答案:

答案 0 :(得分:1)

import os 
#if you want to know current working dir
os.getcwd()
#if you want to change
os.chdir('G:/a-2017-master')
# if you want to list dir
os.listdir()

[ 'DS_Store',  '的.gitignore',  'cs109a_hw0.ipynb',  'hwassets',  “实验室”,  “讲座”,  “期中考试”,  'Module.py',  “项目”,  'README.md',  “节”,  '的 pycache ']

import os
import Module as m 
a = 10
b = 29
print(f"Addition of {a} and {b} : ",m.add(a,b))

答案 1 :(得分:1)

%%capture
%run myModule.ipynb

您将获得myModule文件中定义的所有函数/变量。这也会覆盖当前笔记本的变量,但

from Mymodule import person

也有这种效果。

答案 2 :(得分:0)

我发现本地图书馆名称必须以大写字母开头。如果我将所有本地文件保存在名为Code的文件夹中,则可以导入它们;如果它叫code,我不会。 (子文件夹和子文件的名称似乎不受此限制。)

这似乎是Jupyter的限制,而不是Python的限制-从命令行Python复制代码中,我可以导入所需的任何本地.py文件。

答案 3 :(得分:0)

这里是《 W3schools教程》中的一个本地创建模块的示例:

  1. 在conda环境keras中,将创建“ cookie.py”模块,并在同一路径中启动jupyter笔记本。然后创建一个名为“ Importing_module_locally”的文件。

(keras) ninjawarrior@ninjas-MBP cookiecutter % pwd
/Users/ninjawarrior/miniconda3/environments_files/pythonbasics/Python_Tutorial_w3schools/mymodules/cookiecutter

  1. 确认模块和jupyter笔记本文件都在同一路径上。

(keras) ninjawarrior@ninjas-MBP cookiecutter % ls -lrt
total 16
-rw-r--r--  1 ninjawarrior  staff   46 Oct 12 12:47 cookie.py
drwxr-xr-x  3 ninjawarrior  staff   96 Oct 12 12:50 __pycache__
-rw-r--r--  1 ninjawarrior  staff  751 Oct 12 12:56 Importing_module_locally.ipynb

  1. 在cookie.py中输入以下内容

def greeting(name):
  print("Hello, " + name)

`

  1. 在Import_module_locally中输入以下内容

import mymodule                  

mymodule.greeting("Jonathan")

结果:你好,乔纳森

希望这会有所帮助!