簡體   English   中英

為什么我的setup.py生成的腳本找不到我也安裝的模塊?

[英]Why can't my setup.py-generated script find my also-installed module?

編輯:確切的代碼在GitHub上的https://github.com/edbrannin/mkdocs/tree/windows-runnable上,並且在Linux上也失敗。


我試圖通過使用setup()entry_points參數使mkdocs的腳本安裝跨平台:

entry_points={ 'console_scripts': [ 'mkdocs = mkdocs.mkdocs:main_entry_point', ], },

python setup.py install的輸出在這里。

運行python setup.py install會生成c:\\Python27\\lib\\site-packages\\mkdocs並且該文件位於c:\\Python27\\Scripts\\mkdocs-script.py

#!C:\Python27\python.exe
# EASY-INSTALL-ENTRY-SCRIPT: 'mkdocs==0.9','console_scripts','mkdocs'
__requires__ = 'mkdocs==0.9'
import sys
from pkg_resources import load_entry_point

if __name__ == '__main__':
    sys.exit(
        load_entry_point('mkdocs==0.9', 'console_scripts', 'mkdocs')()
    )

當我嘗試運行mkdocs時,它說找不到模塊:

C:\\>mkdocs Traceback (most recent call last): File "C:\\Python27\\Scripts\\mkdocs-script.py", line 9, in <module> load_entry_point('mkdocs==0.9', 'console_scripts', 'mkdocs')() File "C:\\Python27\\lib\\site-packages\\distribute-0.6.34-py2.7.egg\\pkg_resources.py", line 343, in load_entry_point return get_distribution(dist).load_entry_point(group, name) File "C:\\Python27\\lib\\site-packages\\distribute-0.6.34-py2.7.egg\\pkg_resources.py", line 2307, in load_entry_point return ep.load() File "C:\\Python27\\lib\\site-packages\\distribute-0.6.34-py2.7.egg\\pkg_resources.py", line 2013, in load entry = __import__(self.module_name, globals(),globals(), ['__name__']) ImportError: No module named mkdocs

...但是顯然在那里:

C:\>python
Python 2.7.5 (default, May 15 2013, 22:43:36) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import mkdocs
>>> 

知道我在做什么錯嗎?

您的腳本位置確實不存在。 您的setup.py指定mkdocs.mkdocs。 main_entry_point,但這是不可導入的。 您可以在python shell中檢查此內容:

>>> from mkdocs.mkdocs import main_entry_point

這將導致導入錯誤。 發生這種情況是由於文件命名錯誤引起的:如果將mkdocs / mkdocs重命名為mkdocs / mkdocs.py,則應該看到一切開始正常工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM