日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

python中init和setup有什么区别_python – 为什么setup.py在安装期间运行模块__init__.py?...

發布時間:2023/11/27 生活经验 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python中init和setup有什么区别_python – 为什么setup.py在安装期间运行模块__init__.py?... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我正在使用setup.py安裝包:

python setup.py install

我正在安裝的軟件包中的__init__.py包含一些軟件包級別檢查,其中一個檢查settings.py中是否有可用的屬性.由于它是可再發行的軟件包,因此不會通過軟件包提供settings.py,但用戶必須注意在項目范圍的settings.py中正確設置了這些設置.

from django.core.exceptions import ImproperlyConfigured

from django.conf import settings

#check if settings are properly set

if not hasattr(settings, 'PACKAGE_SPECIFIC_SETTING'):

raise ImproperlyConfigured('Please add the PACKAGE_SPECIFIC_SETTING setting to your settings.py')

現在我想知道為什么調用setup.py install運行我的__init__.py(并崩潰,因為它,不是很令人驚訝,沒有找到任何設置.)

我原以為setup.py只復制我的包,不運行任何代碼.每當使用我的包的另一個應用程序將我的包導入他的代碼時,應該運行代碼.

編輯:按要求包含setup.py

#!/usr/bin/env python

# vim: ai ts=4 sts=4 et sw=4 coding=utf-8

from distutils.core import setup

setup(

name='django-simple-lock',

version=__import__('lock').__version__,

license = 'GNU Lesser General Public License (LGPL), Version 3',

requires = ['python (>= 2.5)', 'django (>= 1.3)'],

provides = ['lock'],

description='Simple locking implementation as a reusable'

'Django app.',

long_description=open('README.rst').read(),

url='http://github.com/mr-stateradio/django-simple-lock',

packages=['lock', 'lock.tests'],

classifiers = [

'Development Status :: 4 - Beta',

'Environment :: Web Environment',

'Framework :: Django',

'Intended Audience :: Developers',

'License :: OSI Approved :: GNU Library or Lesser General Public License (LGPL)',

'Programming Language :: Python',

'Topic :: Database',

'Topic :: Software Development :: Libraries :: Python Modules',

],

)

編輯:包含的追溯:

/Users/Me/.virtualenvs/django1_4/bin/python setup.py install

Traceback (most recent call last):

File "setup.py", line 9, in

version=__import__('lock').__version__,

File "/01_Development/django-simple-lock/lock/__init__.py", line 8, in

raise ImproperlyConfigured('Please add the PACKAGE_SPECIFIC_SETTING setting to your settings.py')

解決方法:

你的setup.py是可執行的python.它作為python腳本運行,以發現您的包分發配置.

您的setup.py運行此代碼:

version=__import__('lock').__version__,

這會導入您的鎖包,因此會加載該包中的__init__.py文件.刪除該呼叫,您的設置將成功.將版本存儲在其他地方.

請注意,引用甚至會明確告訴您:

File "setup.py", line 9, in

version=__import__('lock').__version__,

標簽:python,setup-py

總結

以上是生活随笔為你收集整理的python中init和setup有什么区别_python – 为什么setup.py在安装期间运行模块__init__.py?...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。