Pregunta

Parece que Pycharm 1.5.3 hace un poco de magia, o me he perdido algo.

Tengo la siguiente estructura de archivos:

/sp
/sp/tools.py
/sp/test/main.py

Los archivos que contienen código siguiente

main.py:

__author__ = 'username'
import tools
import sys

def test1():
    print locals()
    print globals()
    print sys.path
    print test1

if __name__ == '__main__':
    test1()

tools.py:

class SettingsDictionary(dict):
    def __init__(self, seq, **kwargs):
        dict.__init__(self, seq, **kwargs)

Cuando ejecuto main.py esto se escribe en la consola:

C:\Python27\python.exe D:/Workspace/Python/sp/test/main.py
{}
{'test1': <function test1 at 0x0143D0B0>, '__warningregistry__': {("Not importing directory 'C:\\Program Files\\JetBrains\\PyCharm 1.5.3\\helpers\\tools': missing __init__.py", <type 'exceptions.ImportWarning'>, 2): True}, '__builtins__': <module '__builtin__' (built-in)>, '__file__': 'D:/Workspace/Python/sp/test/main.py', '__author__': 'p.grechishkin', 'sys': <module 'sys' (built-in)>, '__name__': '__main__', '__package__': None, 'tools': <module 'tools' from 'D:\Workspace\Python\sp\tools.pyc'>, '__doc__': None}
['D:\\Workspace\\Python\\sp\\test', 'C:\\Python27\\lib\\site-packages\\simplejson-2.1.6-py2.7.egg', 'C:\\Python27\\lib\\site-packages\\django_staticfiles-1.1.2-py2.7.egg', 'C:\\Python27\\lib\\site-packages\\django_appconf-0.4-py2.7.egg', 'C:\\Python27\\lib\\site-packages\\suds-0.4-py2.7.egg', 'C:\\Program Files\\JetBrains\\PyCharm 1.5.3\\helpers', 'D:\\Workspace\\Python\\sp', 'C:\\Windows\\system32\\python27.zip', 'C:\\Python27\\DLLs', 'C:\\Python27\\lib', 'C:\\Python27\\lib\\plat-win', 'C:\\Python27\\lib\\lib-tk', 'C:\\Python27', 'C:\\Python27\\lib\\site-packages', 'C:\\Python27\\lib\\site-packages\\win32', 'C:\\Python27\\lib\\site-packages\\win32\\lib', 'C:\\Python27\\lib\\site-packages\\Pythonwin']
<function test1 at 0x0143D0B0>

Process finished with exit code 0

No entiendo por qué la función de importación sabe acerca de este módulo de "herramientas":.Al ejecutar esta secuencia de comandos de windows (cmd) que todo está bien.Me dan ImportError:Ningún módulo denominado herramientas'

¿Fue útil?

Solución

El trabajo de importación en el ejemplo que proporcionó porque su ruta de Python contiene D:\\Workspace\\Python\\sp, que es donde está su módulo de herramientas.

Cuando ejecuta un módulo del intérprete de Python estándar, solo agrega la ruta al módulo actual en sys.path.

Otros consejos

Te falta una __init__.py en el /sp directorio.Crear un archivo con ese nombre, y usted debe ser capaz de importar.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top