2012-08-29 5 views
2

업데이트 : 추가 된 내용은 setup.py입니다.패키지 setup.py 및 Flask 디렉토리 구조

setup.py 
packagename/ 
    __init__.py 
    useless_file.py 

__init__.py에서, 나는 다음과 같은 한 :

from flask import Flask 
from flask.ext.sqlalchemy import SQLAlchemy 

db = SQLAlchemy() 

CONFIG_FILENAME = "packagename.settings" 


def create_app(): 
    app = Flask(__name__) 
    app.config.from_object(CONFIG_FILENAME) 

    db.init_app(app) 

    app.register_blueprint(sms_testing) 

    return app 

내가 플라스크의 recommended package structure 다음

나는 다음과 같은 디렉토리 구조를 가지고있다. 여기

setup.py입니다 : 내가 python setup.py develop을 수행 할 때

import os 
from setuptools import setup 

requires = (
     "flask", 
     "flask-sqlalchemy", 
     "requests>=0.13.6", 
     "python-dateutil>=1.5", 
     "twilio", 
     "selenium", 
     ) 

def read(fname): 
    return open(os.path.join(os.path.dirname(__file__), fname)).read() 

setup(
    name = "Package Name", 
    version = "0.0.1", 
    author = "Charles-Axel Dein", 
    author_email = "[email protected]", 
    description = ("useless"), 
    license = "BSD", 
    keywords = "example documentation tutorial", 
    url = "http://packages.python.org/an_example_pypi_project", 
    packages=['package_name',], 
    # namespace_packages = ['package_name'], 
    install_requires=requires, 
    long_description=read('README.md'), 
    classifiers=[ 
     "Development Status :: 3 - Alpha", 
     "Topic :: Utilities", 
     "License :: OSI Approved :: BSD License", 
    ], 
) 

, 내가 얻을 :

Traceback (most recent call last): 
    File "setup.py", line 2, in <module> 
    from setuptools import setup 
    File "/.virtualenvs/api/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg/setuptools/__init__.py", line 2, in <module> 
    # The Python Imaging Library. 
    File "/.virtualenvs/api/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg/setuptools/extension.py", line 2, in <module> 
    File "/.virtualenvs/api/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg/setuptools/dist.py", line 6, in <module> 
    File "/.virtualenvs/api/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg/setuptools/command/sdist.py", line 5, in <module> 
    File "/.virtualenvs/api/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg/pkg_resources.py", line 2623, in <module> 
    if not len(req.specs): 
    File "/.virtualenvs/api/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg/pkg_resources.py", line 679, in subscribe 
    `requirements` must be a string or a (possibly-nested) sequence 
    File "/.virtualenvs/api/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg/pkg_resources.py", line 2623, in <lambda> 
    if not len(req.specs): 
    File "/.virtualenvs/api/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg/pkg_resources.py", line 2172, in activate 
    return pv 
    File "/.virtualenvs/api/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg/pkg_resources.py", line 1790, in declare_namespace 
    module.__path__ = []; _set_parent_ns(packageName) 
    File "/.virtualenvs/api/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg/pkg_resources.py", line 1761, in _handle_ns 

    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/pkgutil.py", line 238, in load_module 
    mod = imp.load_module(fullname, self.file, self.filename, self.etc) 
    File "/package_name/__init__.py", line 2, in <module> 
    import flask 
    File "/.virtualenvs/api/lib/python2.7/site-packages/flask/exthook.py", line 86, in load_module 
    raise ImportError('No module named %s' % fullname) 
ImportError: No module named flask 

나는 그것이 논리적 인 것 같아요 (I 폴더를 편집 됨), setuptools에 이후에 시도 packagename/__init__.py을 가져 오는 내 패키지를 가져 오기 전에이 패키지가 설치되기 전에 import flask이있는 곳에서 가져 오십시오.

db를 생성하려면 import flask__init__.py에 입력해야합니다.

무엇을 권하고 싶습니까?

감사합니다. CHX가

+0

'setup.py'또는 적어도 관련 부분을 공유하십시오. Flask가'install_requires'에 있습니까? – dlamotte

+0

물론 여기 있습니다. 예, 플라스크가 나열됩니다. 감사! – charlax

답변

1

저는 개인적으로 python setup.py develop 좋아하지 않는

, 당신은이 시도가?

% pip install -e . 

여기서, 현재 디렉토리는 setup.py의 디렉토리입니다. develop과 유사하지만 필요한 패키지를 모두 설치합니다.

+0

왜 "import packagename"을 setup.py에 추가하지 않습니까? – codegeek