Importando Stripe en Django – NameError

Parece que no puedo encontrar la manera de importar Stripe en mi proyecto Django. Estoy corriendo Python 2.7.3 y sigo recibiendo

NameError at /complete/ global name. 'stripe' is not defined. 

Incluso cuando acabo de abrir Terminal y escribo python entonces

 >>> import stripe 

Recibo:

 Traceback (most recent call last): File "", line 1, in  ImportError: No module named stripe 

Sin embargo, si estoy en el directorio:

 /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages 

Luego, el comando de import stripe anterior import stripe éxito la banda. Sin embargo, como he dicho, Django no sabe cómo importar Stripe. ¿Podría ser el problema una referencia de ruta en algún lugar? Pensé que podría ser un problema con la versión de Python, pero independientemente de si python2.6 o python2.7 y luego import stripe , no funciona a menos que esté en el directorio anterior. ¿Debo incluir una franja en mi INSTALLED_APPS o en algún lugar del archivo settings.py de mi proyecto?

    Instalé Stripe según su documentación:

      sudo pip install --index-url https://code.stripe.com --upgrade stripe 

    Que responde con:

     Requirement already up-to-date: stripe in ./stripe-1.7.2-py2.7.egg Requirement already up-to-date: requests>=0.8.8 in /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages (from stripe) Requirement already up-to-date: certifi>=0.0.4 in /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages (from requests>=0.8.8->stripe) Cleaning up... 

    En este punto, no estoy muy seguro de qué hacer. A continuación se muestra el rastro de Django.

     Environment: Request Method: POST Request URL: http://localhost:8000/complete/ Django Version: 1.5.dev20120523102003 Python Version: 2.7.3 Installed Applications: ('django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites', 'django.contrib.messages', 'django.contrib.staticfiles', 'django.contrib.flatpages', 'django.contrib.admin', 'catalog', 'utils', 'cart', 'checkout') Installed Middleware: ('django.middleware.common.CommonMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.contrib.flatpages.middleware.FlatpageFallbackMiddleware') Traceback: File "/Users/Diepenbrock/django-trunk/django/core/handlers/base.py" in get_response 111. response = callback(request, *callback_args, **callback_kwargs) File "/Users/Diepenbrock/Documents/django_/ecomstore/checkout/views.py" in complete_order 15. stripe.api_key = "wXvAcOY6Rferd6oYNsc7Qi82aMm1KwyP" Exception Type: NameError at /complete/ Exception Value: global name 'stripe' is not defined 

    EDITAR:

     import sys print sys.path import stripe 

    devoluciones

     ['/Users/Diepenbrock/Documents/django_/ecomstore', '/Library/Python/2.7/site-packages/pip-1.1-py2.7.egg', '/Users/Diepenbrock/django-trunk', '/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python27.zip', '/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7', '/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin', '/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac', '/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages', '/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk', '/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old', '/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload', '/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages', '/Library/Python/2.7/site-packages'] 

    Según una respuesta, también probé pip install --index-url https://code.stripe.com --upgrade stripe

    Esto es lo que recibí:

    Requirement already up-to-date: stripe in ./stripe-1.7.2-py2.7.egg Requirement already up-to-date: requests>=0.8.8 in /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages (from stripe) Requirement already up-to-date: certifi>=0.0.4 in /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages (from requests>=0.8.8->stripe) Cleaning up...

    Esto parece ser una situación en la que se ejecuta el servidor django dev con un intérprete de python diferente al que usa pip. La ubicación de “paquetes de sitio” debería estar automáticamente en su ruta para el intérprete correcto.

    No debería tener que agregar “banda” a las INSTALLED_APPS para resolver el hecho de que no se puede importar. Lo agregaría para que se incluya como una aplicación y tenga en cuenta todos sus módulos, como por ejemplo sus modelos.py.

    Basado en sus comentarios, está usando una instalación de macports de python como su valor predeterminado, pero cuando usa el comando sudo para instalar stripe, usa su sistema python. En primer lugar, debe intentar instalar pip sin el sudo. O asegúrese de que /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages esté siempre en su PYTHONPATH para incluir los paquetes del sistema y sus macports.

    O bien, puede intentar usar sudo con una ruta explícita al python que desea, de modo que el entorno no lo adivine: sudo /opt/local/bin/pip install ...

    Virtualenv

    Lo que está encontrando hace que este problema sea un candidato perfecto para hacer uso de virtualenv . Lo que obtiene al usar virtualenv es un entorno completamente aislado, que utiliza el mismo intérprete de Python todo el tiempo y que tiene paquetes de sitios localizados. Instalar franja lo colocaría en esa biblioteca local.

     pip install virtualenv virtualenv --no-site-packages myproject cd myproject source bin/activate pip install --index-url https://code.stripe.com --upgrade stripe 

    virtualenv también le permite decirle explícitamente qué python debe usar en lugar del predeterminado:

     virtualenv --no-site-packages -p /opt/local/bin/python myproject 

    Por favor, eche un vistazo a la ruta de Python justo antes de importar la banda:

     import sys print sys.path import stripe 

    Puede que tenga que exportar un paquete PYTHONPATH = / Library / Frameworks / Python.framework / Versions / 2.7 / lib / python2.7 / site justo antes de hacer un python ./manage runserver

    / Biblioteca / … no parece ser una ruta estándar …