r/learnpython

2

Publié par il y a 5 mois

= Les modules ne sont pas importés correctement sur Ubuntu VPS =

![ ](httpswww.redditstatic.com/desktop2x/img/renderTimingPixel.png)

J'ai la structure de dossier suivante

- parent -- corefoo.py -- barre de sources.py

À l'intérieur de foo.py

je fais ça

importer le système d'exploitation, le système

sys.path.append(os.path.join(os.path.dirname(os.path.abspath(filefrom sources.bar import Bar

Et puis je l'exécute comme ça

sources python/foo.py

J'ai essayé ceci sur Windows 10 dans un virtualenv, cela fonctionne, et sur ubuntu wsl virtualenv cela fonctionne.

Sur mon serveur ubuntu dans virtualenv aussi, obtenez cette erreur

from sources.bar import Bar ModuleNotFoundError: Aucun module nommé 'sources.bar'J'ai essayé d'exécuter le script à partir de différents chemins, rien ne fonctionne.

Sur mon VPS ubuntu 20.04, j'ai python 3.8.10, sur windows j'ai python 3.9.7, sur wsl j'ai python 3.9.2

Dois-je mettre à niveau le python sur Ubuntu vers 3.9 ou s'agit-il d'un problème sans rapport?

67 % ont voté pour

niveau 1

os.path.join(os.path.dirname(os.path.abspath(file

S'il vous plaît, permettez-vous de profiter des plaisirs de pathlib ici,

from pathlib import Path sys.path.append(str(Pathfileresolveparents[1

vous pourriez même envisager d'utiliser

sys.path.insert(0, str(Pathfileresolveparents[1

pour garantir qu'il vérifiera d'abord ce dossier et ne choisira pas accidentellement quelque chose dans le PATH existant

1

== À propos de la communauté ==

Subreddit pour poster des questions et demander des conseils généraux sur votre code python.

623k

Membres

570

En ligne

Créé le 2 octobre 2009

Reddit Inc ÃÂé 2022. Tous droits réservés