ulf*_*ulf 47 python pythonpath jupyter
在Jupyter我没有加载我自己的小模块但是在python/bpython中一切都很好.打字时
import sys
print(sys.path)
Run Code Online (Sandbox Code Playgroud)
我的模块的路径不会在Jupyter中显示,但在python/bpython中它仍然存在.
我在用:
最相似的问题是这个 无法在jupyter笔记本中导入模块; 错误的sys.path
如何配置Jupyter自动加载我的模块?
Dog*_*kan 37
以下是我在jupyter笔记本中的项目,
import sys
sys.path.append("../") # go to parent dir
from customFunctions import *
Run Code Online (Sandbox Code Playgroud)
然后,为了影响变化customFunctions.py,
%load_ext autoreload
%autoreload 2
Run Code Online (Sandbox Code Playgroud)
N. *_* P. 13
Jupyter有自己的PATH变量JUPYTER_PATH.
将此行添加到.bashrc文件中对我有用:
export JUPYTER_PATH=<directory_for_your_module>:$JUPYTER_PATH
Run Code Online (Sandbox Code Playgroud)
小智 7
Jupyter基于ipython,永久解决方案可能是更改ipython config选项。
创建一个配置文件
$ ipython profile create
$ ipython locate
/Users/username/.ipython
Run Code Online (Sandbox Code Playgroud)
编辑配置文件
$ cd /Users/username/.ipython
$ vi profile_default/ipython_config.py
Run Code Online (Sandbox Code Playgroud)
以下几行允许您将模块路径添加到sys.path中
c.InteractiveShellApp.exec_lines = [
'import sys; sys.path.append("/path/to/your/module")'
]
Run Code Online (Sandbox Code Playgroud)
在jupyter启动时,将执行上一行
在这里您可以找到有关ipython配置的更多详细信息https://www.lucypark.kr/blog/2013/02/10/when-python-imports-and-ipython-does-not/
假设您的项目具有以下结构,并且您想要在 中进行导入notebook.ipynb:
/app
/mypackage
mymodule.py
/notebooks
notebook.ipynb
Run Code Online (Sandbox Code Playgroud)
如果您在没有任何 virtualenv 的 docker 容器内运行 Jupyter,则在项目文件夹中创建 Jupyter (ipython) 配置可能会很有用:
/app
/profile_default
ipython_config.py
Run Code Online (Sandbox Code Playgroud)
内容ipython_config.py:
c.InteractiveShellApp.exec_lines = [
'import sys; sys.path.append("/app")'
]
Run Code Online (Sandbox Code Playgroud)
打开笔记本查看一下:
print(sys.path)
Run Code Online (Sandbox Code Playgroud)
['', '/usr/local/lib/python36.zip', '/usr/local/lib/python3.6', '/usr/local/lib/python3.6/lib-dynload', '/usr /local/lib/python3.6/site-packages', '/usr/local/lib/python3.6/site-packages/IPython/extensions', '/root/.ipython', '/app']
现在您可以在笔记本中进行导入,而无需sys.path在单元格中添加任何内容:
from mypackage.mymodule import myfunc
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
61433 次 |
| 最近记录: |