我用elpy配置了我的emacs,如下所示:
;;; for python
(elpy-enable)
(setq elpy-modules (delq 'elpy-module-flymake elpy-modules))
(add-hook 'elpy-mode-hook 'flycheck-mode)
(pyenv-mode)
(setq elpy-shell-use-project-root nil)
(setq python-shell-interpreter "python3")
但是,在编写简单的 Python 脚本时,如果我尝试在同一目录中添加自定义 Python 模块。 在 elpy-shell 中通过键入 Ctrl-C 进行评估 Ctrl-C 抱怨模块不存在。
import restaurant
ImportError: No module named restaurant
如果我直接在终端中评估 python 脚本,它可以正常工作。它不知何故没有正确配置 elpy shell,似乎没有在当前目录中找到 python 模块。
任何帮助不胜感激。
从你的restuarant.py
中制作一个自定义包。
最快的方法:
# in terminal
mkdir -p restaurant/restaurant
cd restaurant
touch setup.py
复制粘贴到 setup.py:
from setuptools import setup
setup(
name="restaurant",
version="0.0.1",
description="<describe what it does here>",
packages=["restaurant"],
author="yourname",
author_email="youremail",
keywords=["restaurant"],
url="<url in github or bitbucket? - not necessary>"
)
省省吧。 然后
# in terminal
cd restaurant # the inner folder
# put into the inner restaurant folder your restaurant.py
touch __init__.py # python package needs it to recognize restaurant.py
# put there in:
from .restaurant import *
# or import each function/variable/dict etc what should be visible outside
# of package
因此,现在您可以从控制台 python3 使用 pip 进行本地安装:
# in terminal
pip install -e /path/to/your/outer/folder/restaurant
重新启动 python3 从现在开始,它应该可以从任何地方获得
import restaurant
每当您将更改放入 restaurant.py 时,它实际上应该立即可见。但如果没有,请使用 相同的点命令!
创建自定义包非常简单。我应该很久以前就开始使用它来集中我的代码并使其从任何地方可用。