在virtualenv中默认python3:
首先,我从项目中删除了我的应用 myapp 。我创建了一个名为 django-myapp 的新文件夹,下一个主要的django项目目录。
在 django-myapp 里面,我将 myapp 复制到此文件夹,并创建了制作python包所需的所有文件。
我跑了python setup.py sdist
。到现在为止一切正常。
我的模板和css文件包含在 django-myapp-0.1.tar.gz 文件中。但是当我使用pip install django-myapp/dist/django-myapp-0.1.tar.gz
安装此应用程序时,会安装该应用程序。但是当我运行服务器并转到主页 TemplateDoesNotExist 时会发生错误。
我的管理页面有效,然后我检查了 /env/alis5/lib/python3.4/site-packages/myapp / ,其中没有模板目录
问题是什么我按照django教程:https://docs.djangoproject.com/en/1.7/intro/reusable-apps/
这是我的MANIFEST.in:
include LICENSE
include README.rst
recursive-include polls/static *
recursive-include polls/templates *
recursive-include docs *
这里也是我的setup.py:
setup(
name='django-polls',
version='0.1',
packages=['polls'],
include_package_date=True,
license='BSD License', # example license
description='A simple Django app to conduct Web-based polls.',
long_description=README,
url='http://www.example.com/',
author='Maksat Yalkabov',
author_email='yalkabovmaksat@gmail.com',
classifiers=[
'Environment :: Web Environment',
'Framework :: Django',
'Intended Audience :: Developers',
'License :: OSI Approved :: BSD License', # example license
'Operating System :: OS Independent',
'Programming Language :: Python',
# Replace these appropriately if you are stuck on Python 2.
'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.2',
'Programming Language :: Python :: 3.3',
'Topic :: Internet :: WWW/HTTP',
'Topic :: Internet :: WWW/HTTP :: Dynamic Content',
],
)
答案 0 :(得分:1)
你说你按照教程,但我不得不问,你创建了清单文件吗?你没有提到它,默认情况下只包含Python。
创建myapp/MANIFEST.in
并在其中添加recursive-include myapp/templates *
这应该确保python setup.py sdist
递归地创建包含模板目录的包。
修改强>
好的,所以我刚刚在我的一个项目上测试了这个。
- proj
- setup.py
- MANIFEST.in
- injurytracker
- init.py
- templates
- etc
在setup.py
我已经packages=['injurytracker'],
包含了我的包裹,在MANIFEST.in
我已经recursive-include injurytracker/templates *
当我检查dist.gz时我已经得到了我的模板。
正如您所提到的include_package_data
,无论采用哪种方式设置,都不会影响模板目录的包含。
在您的setup.py
中也从setuptools导入find_packages
,并在您的设置方法中添加这样的内容;
packages=find_packages(exclude=["project", "project.*"]),
对我来说,挑选出我所有的python模块&我期望的文件,包括迁移。
答案 1 :(得分:0)
您的settings.py
?
TEMPLATE_LOADERS = (
'django.template.loaders.filesystem.Loader',
'django.template.loaders.app_directories.Loader', # <--
)