0

我用 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 模块。通过键入 ctrl-c 在 elpy-shell 中进行评估 ctrl-c 抱怨模块不存在。

    import restaurant
    ImportError: No module named restaurant

如果我直接在终端中评估 python 脚本,它工作正常。它以某种方式没有正确配置 elpy shell,似乎在当前目录中找不到 python 模块。

任何帮助表示赞赏。

4

1 回答 1

0

使用您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 时,使用相同的命令重新安装!

创建自定义包非常容易。我应该很久以前就开始使用它来集中我的代码并使其在任何地方都可用。

于 2020-06-25T09:04:18.887 回答