Maison >développement back-end >Golang >Pourquoi « go install » échoue-t-il avec des erreurs « d'importation locale » pour les packages Go non locaux ?

Pourquoi « go install » échoue-t-il avec des erreurs « d'importation locale » pour les packages Go non locaux ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-24 20:05:12620parcourir

Why Does

Importation locale dans un package non local dans Go

Lorsque vous travaillez avec une structure de fichiers spécifique, il est important de comprendre les implications de l'utilisation importations locales dans des packages non locaux.

Considérez ce qui suit scénario :

  • Structure du fichier :

    .
    ├── bin
    │   └── hello
    ├── pkg
    └── src
      └── jacob.uk.com
          ├── greeting
          │   └── greeting.go
          └── helloworld.go
  • GOPATH : /Users/clarkj84/Desktop/LearningGo

Lors de l'exécution la commande /usr/local/go/bin/go installe jacob.uk.com depuis le src dossier, une erreur peut être rencontrée : importation locale "./greeting" dans un package non local.

Explication :
Cette erreur se produit car les importations locales (par exemple, ./greeting ) ne sont pas autorisés lors de la spécification d'un package non local à installer (jacob.uk.com).

Solution :
Pour résoudre ce problème, vous pouvez soit :

  1. Changer le répertoire de travail en src/ jacob.uk.com et exécutez go install sans spécifier le package.
  2. Utilisez un chemin d'importation absolu : import "jacob.uk.com/greeting"

Bonne pratique :
Il est recommandé d'éviter d'utiliser les importations locales en général. Utilisez plutôt des chemins d’importation absolus pour garantir la portabilité et éviter les erreurs potentielles.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn