Cada vez que usa la importación automática proporcionada por PyCharm, genera una importación de ruta absoluta. es decir
from my_package.my_subpackage import my_thing
en vez de
from .my_subpackage import my_thing
¿Existe una configuración para usar importaciones relativas en lugar de absolutas al importar un paquete de python?
Parece que actualmente no hay forma de cambiar el estilo de importación para que la función de importación automática use importaciones relativas. Los únicos cambios de estilo que puede realizar en las declaraciones de importación son cómo se estructuran las importaciones absolutas:
(Por cierto, la función de búsqueda de configuración de Jetbrains/PyCharm es excelente).
Lo mismo sucede cuando se refactoriza, definitivamente es una opción que me gustaría ver agregada.
Será posible a partir de 2019.3 https://youtrack.jetbrains.com/issue/PY-6054 Tenga en cuenta que no realizará la importación relativa automáticamente si aún no hay otras importaciones relativas en ese archivo. También hay una acción para convertir la importación absoluta existente en relativa:
Desaconsejaría a los parientes en general, puede consultar esta pregunta: https://softwareengineering.stackexchange.com/a/159505
Además, puede consultar las especificaciones oficiales de pep8 https://www.python.org/dev/peps/pep-0008/
Se recomiendan las importaciones absolutas, ya que suelen ser más legibles y tienden a comportarse mejor (o al menos dan mejores mensajes de error) si el sistema de importación está configurado incorrectamente (como cuando un directorio dentro de un paquete termina en sys.path):
Desde mi experiencia personal, resulta que a veces se integran mal con el IDE de Pycharm cuando hay una prueba de ruptura de diseño de paquete más compleja que se ejecuta a través de Pycharm. Supongo que también podría haber algunos problemas en otras herramientas.