Tratar
if __name__ == '__main__':
from [whatever the name of your package is] import one
else:
import one
Tenga en cuenta que en Python 3, la sintaxis de la parte en la else
cláusula sería
from .. import one
Pensándolo bien, esto probablemente no solucionará su problema específico. No entendí la pregunta y pensé que two.py se estaba ejecutando como el módulo principal, pero ese no es el caso. Y teniendo en cuenta las diferencias en la forma en que Python 2.6 (sin importar absolute_import
desde __future__
) y Python 3.x manejan las importaciones, de todos modos no necesitaría hacer esto para Python 2.6, no creo.
Aún así, si finalmente cambia a Python 3 y planea usar un módulo como módulo de paquete y como un script independiente dentro del paquete, puede ser una buena idea mantener algo como
if __name__ == '__main__':
from [whatever the name of your package is] import one # assuming the package is in the current working directory or a subdirectory of PYTHONPATH
else:
from .. import one
en mente.
EDITAR: Y ahora para una posible solución a su problema real. Ejecute PyLint desde el directorio que contiene su one
módulo (quizás a través de la línea de comando) o coloque el siguiente código en algún lugar cuando ejecute PyLint:
import os
olddir = os.getcwd()
os.chdir([path_of_directory_containing_module_one])
import one
os.chdir(olddir)
Básicamente, como alternativa a jugar con PYTHONPATH, solo asegúrese de que el directorio de trabajo actual sea el directorio que contiene one.py
cuando realiza la importación.
(Mirando la respuesta de Brian, probablemente podrías asignarle el código anterior init_hook
, pero si vas a hacer eso, entonces simplemente puedes agregar lo sys.path
que él hace, que es un poco más elegante que mi solución).