我有一个(主要是工作的)python3程序使用
mkepub
.
因为我需要为我的特定目的修改它,我开始把它拉到我的目录树中(当我完成后,我会发送一个拉请求,因为我认为我的mod可能对其他人有用,但这不是问题所在)。
我当前的目录树是:
.
âââ markright
â  âââ book_parser.py
â  âââ docx_emitter.py
â  âââ emitter.py
â  âââ epub_emitter.py
â  âââ html_emitter.py
â  âââ __init__.py
â  âââ mkepub
â  â  âââ __init__.py
â  â  âââ mkepub.py
â  â  âââ templates
â  â  â  âââ container.xml
â  â  â  âââ cover.xhtml
â  â  â  âââ package.opf
â  â  â  âââ page.xhtml
â  â  â  âââ toc.ncx
â  â  â  âââ toc.xhtml
â  â  âââ tests
âââ markright.py
mkepub
从
epub_emitter.py
以这种方式:
from . import mkepub # <-- here I get problems
...
epub = mkepub.Book(**kwargs)
什么进口的
./mkepub/__init__.py
:
from .mkepub import Book # <-- here I get problems
... 最终得到了有问题的代码:
import jinja2
...
env = jinja2.Environment(loader=jinja2.PackageLoader('mkepub'))
import
ing)出现以下错误:
Traceback (most recent call last):
File "/home/mcon/Documents/Libro/sigil/markright/venv/lib/python3.7/site-packages/setuptools-40.8.0-py3.7.egg/pkg_resources/__init__.py", line 359, in get_provider
KeyError: 'mkepub'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/mcon/Documents/Libro/sigil/markright/markright.py", line 1, in <module>
from markright import *
File "/home/mcon/Documents/Libro/sigil/markright/markright/__init__.py", line 4, in <module>
from .epub_emitter import EPUBemitter
File "/home/mcon/Documents/Libro/sigil/markright/markright/epub_emitter.py", line 1, in <module>
from . import mkepub
File "/home/mcon/Documents/Libro/sigil/markright/markright/mkepub/__init__.py", line 1, in <module>
from .mkepub import Book
File "/home/mcon/Documents/Libro/sigil/markright/markright/mkepub/mkepub.py", line 49, in <module>
env = jinja2.Environment(loader=jinja2.PackageLoader('mkepub'))
File "/home/mcon/Documents/Libro/sigil/markright/venv/lib/python3.7/site-packages/jinja2/loaders.py", line 224, in __init__
provider = get_provider(package_name)
File "/home/mcon/Documents/Libro/sigil/markright/venv/lib/python3.7/site-packages/setuptools-40.8.0-py3.7.egg/pkg_resources/__init__.py", line 361, in get_provider
ModuleNotFoundError: No module named 'mkepub'
注意如果我
相同的
venv
).
我错过了什么?
当然,我希望尽可能少的改变(最好是什么都不改变!)在里面
mkepub公司
以避免在以后的拉请求中出现问题。我可以毫无问题地更改我的代码。
在此过程中,我还想了解Python3中更好的路径分辨率。
mkepub公司
凡夫
然后编辑里面的文件(
.../venv/lib/python3.7/site-packages/mkepub/...
)看起来很难看。还有别的办法吗?