首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >找不到emacs elpy自定义python模块

找不到emacs elpy自定义python模块
EN

Stack Overflow用户
提问于 2020-06-24 05:55:07
回答 1查看 163关注 0票数 0

我使用elpy配置了我的emacs,如下所示:

代码语言:javascript
复制
 ;;; 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 ctrl-c在elpy-shell中求值,报告模块不在那里。

代码语言:javascript
复制
    import restaurant
    ImportError: No module named restaurant

如果我直接在终端中评估python脚本,它会工作得很好。不知何故,它没有正确配置elpy shell,似乎在当前目录中找不到python模块。

任何帮助都是非常感谢的。

EN

回答 1

Stack Overflow用户

发布于 2020-06-25 17:04:19

从你的restuarant.py中创建一个定制的包。

最快的方法:

代码语言:javascript
复制
# in terminal
mkdir -p restaurant/restaurant
cd restaurant
touch setup.py

复制粘贴到setup.py中:

代码语言:javascript
复制
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>"
)

省省吧。然后

代码语言:javascript
复制
# 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:
代码语言:javascript
复制
from .restaurant import *
# or import each function/variable/dict etc what should be visible outside
# of package

因此,现在您可以从控制台python3使用pip进行本地安装:

代码语言:javascript
复制
# in terminal
pip install -e /path/to/your/outer/folder/restaurant

从现在开始重新启动python3,它应该可以在任何地方使用

代码语言:javascript
复制
import restaurant

无论何时您将更改放入restaurant.py,使用相同的命令重新安装!

创建自定义包非常简单。我应该很久以前就开始使用它,集中我的代码,让它从任何地方都可以使用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62544358

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档