python - 更改包目录名称后修复 setup.py
问题描述
我想/src
用作我的项目目录而不是它的名称/newsite
。package_dir={'':'src'}, packages=find_packages('src')
尽管在 setup.py 的设置调用中进行了设置,但我仍然收到 ModuleNotFoundError 。
这是我的目录结构:
/app
- venv
- src
- - /templates
- - __init__.py
- - newsite.egg-info
- setup.py
- /views
- - __init__.py
- - home.py
这是我的 setup.py 的设置函数:
setup(name='newsite',
version='0.0',
description='newsite',
classifiers=[
"Programming Language :: Python",
"Framework :: Pylons",
"Topic :: Internet :: WWW/HTTP",
"Topic :: Internet :: WWW/HTTP :: WSGI :: Application",
],
author='',
author_email='',
url='',
keywords='web pyramid pylons',
package_dir={'':'src'},
packages=find_packages('src'),
include_package_data=True,
zip_safe=False,
install_requires=requires,
tests_require=requires,
test_suite="newsite",
entry_points = """\
[paste.app_factory]
main = newsite:main
""",
paster_plugins=['pyramid'],
)
这是启动我的金字塔网络应用程序时的回溯pserve development.ini --reload
:
pyramid_app_1 | Starting monitor for PID 10.
pyramid_app_1 | Traceback (most recent call last):
pyramid_app_1 | File "<string>", line 1, in <module>
pyramid_app_1 | File "/app/venv/lib/python3.6/site-packages/hupper/ipc.py", line 315, in spawn_main
pyramid_app_1 | func(**kwargs)
pyramid_app_1 | File "/app/venv/lib/python3.6/site-packages/hupper/worker.py", line 267, in worker_main
pyramid_app_1 | func(*spec_args, **spec_kwargs)
pyramid_app_1 | File "/app/venv/lib/python3.6/site-packages/pyramid/scripts/pserve.py", line 32, in main
pyramid_app_1 | return command.run()
pyramid_app_1 | File "/app/venv/lib/python3.6/site-packages/pyramid/scripts/pserve.py", line 253, in run
pyramid_app_1 | app = loader.get_wsgi_app(app_name, config_vars)
pyramid_app_1 | File "/app/venv/lib/python3.6/site-packages/plaster_pastedeploy/__init__.py", line 131, in get_wsgi_app
pyramid_app_1 | global_conf=defaults)
pyramid_app_1 | File "/app/venv/lib/python3.6/site-packages/paste/deploy/loadwsgi.py", line 253, in loadapp
pyramid_app_1 | return loadobj(APP, uri, name=name, **kw)
pyramid_app_1 | File "/app/venv/lib/python3.6/site-packages/paste/deploy/loadwsgi.py", line 277, in loadobj
pyramid_app_1 | global_conf=global_conf)
pyramid_app_1 | File "/app/venv/lib/python3.6/site-packages/paste/deploy/loadwsgi.py", line 302, in loadcontext
pyramid_app_1 | global_conf=global_conf)
pyramid_app_1 | File "/app/venv/lib/python3.6/site-packages/paste/deploy/loadwsgi.py", line 326, in _loadconfig
pyramid_app_1 | return loader.get_context(object_type, name, global_conf)
pyramid_app_1 | File "/app/venv/lib/python3.6/site-packages/paste/deploy/loadwsgi.py", line 455, in get_context
pyramid_app_1 | global_additions=global_additions)
pyramid_app_1 | File "/app/venv/lib/python3.6/site-packages/paste/deploy/loadwsgi.py", line 564, in _pipeline_app_context
pyramid_app_1 | APP, pipeline[-1], global_conf)
pyramid_app_1 | File "/app/venv/lib/python3.6/site-packages/paste/deploy/loadwsgi.py", line 459, in get_context
pyramid_app_1 | section)
pyramid_app_1 | File "/app/venv/lib/python3.6/site-packages/paste/deploy/loadwsgi.py", line 481, in _context_from_use
pyramid_app_1 | object_type, name=use, global_conf=global_conf)
pyramid_app_1 | File "/app/venv/lib/python3.6/site-packages/paste/deploy/loadwsgi.py", line 412, in get_context
pyramid_app_1 | global_conf=global_conf)
pyramid_app_1 | File "/app/venv/lib/python3.6/site-packages/paste/deploy/loadwsgi.py", line 302, in loadcontext
pyramid_app_1 | global_conf=global_conf)
pyramid_app_1 | File "/app/venv/lib/python3.6/site-packages/paste/deploy/loadwsgi.py", line 334, in _loadegg
pyramid_app_1 | return loader.get_context(object_type, name, global_conf)
pyramid_app_1 | File "/app/venv/lib/python3.6/site-packages/paste/deploy/loadwsgi.py", line 625, in get_context
pyramid_app_1 | object_type, name=name)
pyramid_app_1 | File "/app/venv/lib/python3.6/site-packages/paste/deploy/loadwsgi.py", line 651, in find_egg_entry_point
pyramid_app_1 | possible.append((entry.load(), protocol, entry.name))
pyramid_app_1 | File "/app/venv/lib/python3.6/site-packages/pkg_resources/__init__.py", line 2411, in load
pyramid_app_1 | return self.resolve()
pyramid_app_1 | File "/app/venv/lib/python3.6/site-packages/pkg_resources/__init__.py", line 2417, in resolve
pyramid_app_1 | module = __import__(self.module_name, fromlist=['__name__'], level=0)
pyramid_app_1 | ModuleNotFoundError: No module named 'newsite'
pyramid_app_1 | Server with PID 10 exited with code 1.
pyramid_app_1 | Waiting for changes before reloading.
我阅读了我在网上找到的内容,但似乎我应该做对了。
解决方案
您的目录结构完全错误。在src/
必须有newsite/
包含您的 Python 文件的目录下:
/app
- venv
- src
- - newsite
- - - templates
- - - views
- - - - __init__.py
- - - - home.py
- setup.py
你setup.py
现在应该工作了。
推荐阅读
- asp.net - 在 NET 应用程序中处理传入的 Postfix 电子邮件
- sql - 查找具有不同键的两个表之间的差异
- ssl - 如何修复自托管 nginx 服务器上的无限重定向循环?
- python - 如何通过 Python 脚本使用 Volatility3 插件?
- sql - 如何在我的 Date 变量上实现这个 CASE 语句逻辑?
- android - 如何过滤firebase中的值?
- docker - 如何设置 docker nextcloud 以使用 SSL
- tensorflow - add_loss() 如何处理复合模型?
- c# - 如何“禁用”计算列以便应用迁移?
- mysql - 如何在mysql中找到给定数字的范围