buildout 似乎未正确执行 setup.py

3 投票
1 回答
524 浏览
提问于 2025-04-17 04:48

这是一个名为 buildout.cfg 的配置文件。

[buildout]
parts = icom
develop = .
unzip = true
include-site-packages = false
eggs = 
       sqlalchemy
       flask
       scss

[icom]
recipe = zc.recipe.egg
eggs = ${buildout:eggs}
interpreter = python
scripts = 
          create_db
          scss

在脚本中有一个叫 create_db 的东西。

接下来是 setup.py 文件。

from setuptools import setup, find_packages

setup(
    name = "icom",
    version = "1.0",
    url = 'http://domain.com',
    license = 'BSD',
    description = "",
    author = 'lzyy',
    author_email = 'someone@some.com',
    packages = find_packages('src'),
    package_dir = {'': 'src'},
    install_requires = ['setuptools', 'flask', 'sqlalchemy', 'scss', 'flask-actions'],
    zip_safe = False,
    entry_points = '''
    [console_scripts]
    create_db = models.tables:create_db
    ''',
)

注意,flask-actions 并不在 buildout.cfg 文件里。

当我运行 bin/buildout -vv 时,出现了这些信息。

Installing 'zc.buildout', 'setuptools'.
We have the best distribution that satisfies 'zc.buildout'.
Picked: zc.buildout = 1.5.2
We have a develop egg: setuptools 0.6c12dev-r85381
Develop: '/Users/healdream/Dropbox/project/icom/.'
in: '/Users/healdream/Dropbox/project/icom/.'
/var/folders/70/d_0n450n7_17fj_httj_sbf00000gn/T/tmpfWBBK3 develop -mxN -d /Users/healdream/Dropbox/project/icom/develop-eggs/tmpfcXY_fbuild
running develop
running egg_info
writing requirements to src/icom.egg-info/requires.txt
writing src/icom.egg-info/PKG-INFO
writing top-level names to src/icom.egg-info/top_level.txt
writing dependency_links to src/icom.egg-info/dependency_links.txt
writing entry points to src/icom.egg-info/entry_points.txt
reading manifest file 'src/icom.egg-info/SOURCES.txt'
writing manifest file 'src/icom.egg-info/SOURCES.txt'
running build_ext
Creating /Users/healdream/Dropbox/project/icom/develop-eggs/tmpfcXY_fbuild/icom.egg-link (link to src)

Installed /Users/healdream/Dropbox/project/icom/src

但是在 bin 目录下找不到 create_db.py 文件,也没有安装 flask-actions

1 个回答

3

确保你在你的 eggs 列表中包含 icom。你可以把它添加到 [buildout] 这一部分:

[buildout]
...
eggs =
   icom
   sqlalchemy
   flask
   scss

或者添加到 [icom] 这一部分:

[icom]
recipe = zc.recipe.egg
eggs =
    icom
    ${buildout:eggs}
...

撰写回答