Liste o caminho atual
Ao declarar o seguinte, podemos verificar o caminho atual do Python:
Importar sistemasAqui, o módulo Pprint é usado apenas para fazer as coisas parecerem bonitas, para que você possa ignorar essa parte e se concentrar no resto. Tudo o que estamos tentando fazer aqui é imprimir sistemas.caminho.
Isso é o que recebemos:
O que você percebe aqui é que, antes de tudo, é uma lista. Então, de acordo com a lista, ele primeiro procurará no diretório de trabalho atual e depois em outros diretórios um por um. O diretório de trabalho atual é o diretório em que o principal script python - aquele que está sendo executado - é encontrado. Além disso, o que isso também significa é que esta lista pode ser modificada ou editada.
Adicionando um caminho
O sistema.caminho.O método append () é usado especificamente para adicionar um caminho aos existentes.
Suponha agora que eu tenho dois arquivos distintos: principal.py e file1.py. Principal.PY é o arquivo principal e vamos tentar importar o arquivo1.py (um módulo que escrevemos).
principal.py | arquivo1.py |
---|---|
importar arquivo1 Imprimir (File1.segredo) | secret = “Esta é a frase secreta” |
Porque o arquivo1.PY ou nosso módulo está dentro do diretório de trabalho, você poderá imprimir com sucesso a frase secreta. Isso ocorre porque quando o intérprete Python procura o módulo solicitado, ele pesquisará no diretório de trabalho primeiro e como nosso módulo chamado File1 está dentro do diretório de trabalho, ele imprimirá automaticamente nossa frase secreta.
Agora, suponha que eu criei um diretório dentro do meu diretório de trabalho chamado "diretório1" e coloco meu módulo chamado File1 dentro dele.
Agora, dentro do módulo File1 é a frase secreta que estamos tentando imprimir. Nesse caso, ele não imprimirá a frase secreta. Por que? Porque o intérprete não está procurando no "diretório1" para qualquer módulo. Em outras palavras, o diretório de trabalho atual é um membro da lista de sistemas.caminho, mas "diretório1" não é um membro dessa lista. Portanto, o erro resultante é um erro de moduleNotfound - ele não conseguiu encontrar ou localizar o módulo chamado file1.
Para evitar esse problema, você precisa dizer ao intérprete Python onde procurar o arquivo do módulo1. É aqui que os sistemas.caminho.o método apênd () vem em.
O sistema.caminho.O método Append () é usado para anexar o caminho que queremos à lista existente.
Em um sistema Linux:
sys.caminho.anexar ("/path/to/dir")Em um sistema Windows, você escreveria:
sys.caminho.Anexar (“C: \\ PATH \\ a \\ dir”)Observe que você não pode adicionar nenhum arquivo determinado ao SYS.caminho, em vez disso, você pode adicionar diretórios e depois importar os arquivos que deseja.
Exemplo 1
Então, vamos tentar a operação anterior (onde o módulo FILE1 está localizado no diretório1) novamente, mas desta vez, anexaremos o caminho ao módulo File1 para o SYS.caminho usando o sistema.caminho.Método apêndice ().
principal.py | arquivo1.py |
---|---|
Importar sistemas sys.caminho.Anexar ('C: \\ Users \\ Never \\ PyCharmProjects \\ PythonProject1 \\ Directory1 ') importar arquivo1 Imprimir (File1.segredo) | secret = “Esta é a frase secreta” |
Quando prendemos o caminho usando o sistema.caminho.Método Append (), primeiro anexamos a localização do módulo a caminho e depois o importamos. Se feito dessa maneira, o intérprete Python deve poder localizar o módulo solicitado e, portanto, recuperar a variável secreta.
A saída da operação anterior é a seguinte:
Exemplo #2
Vamos dar outro exemplo, desta vez em uma máquina Linux. Vamos supor que tenhamos um arquivo - principal.py.
principal.py |
---|
Importar sistemas De Pprint Import Pprint Pprint (sys.caminho) |
Aqui, sys.O caminho [0] é "/home/kalyani" porque é aí que principal.PY está localizado.
Agora, vamos modificar um pouco o script usando os sistemas.caminho.Método apêndice (). Vamos usar o método para anexar um caminho específico ('/home/kalyani/diretório1') ao sistema.caminho.
principal.py |
---|
Importar sistemas De Pprint Import Pprint sys.caminho.Anexar ('/home/kalyani/diretório1') Pprint (sys.caminho) |
Então, o sistema.caminho.O método Append () anexou o caminho para o final da lista existente! Aqui, observe também que o anexo é feito no final da lista não no começo.
Pythonpath
Há um pequeno problema com o que acabamos de fazer e é que não colocamos permanentemente esse local no sistema.Lista de caminho. O sistema.caminho.O método append () é usado para adicionar temporariamente um caminho e, como tal, esse caminho seria válido para uma sessão, por exemplo. Se você quiser alterar permanentemente os sistemas.Lista de caminho, então podemos usar o PythonPath para adicionar o caminho à lista. Desde sys.Path também analisa o PythonPath, os locais listados serão incluídos na lista de caminhos.
No Linux:
exportar pythonpath = '/path/to/dir'Aqui, você pode adicionar o caminho que deseja.
principal.py |
---|
Importar sistemas De Pprint Import Pprint Pprint (sys.caminho) |
Ao escrever programas complexos no Python, eventualmente adicionaremos módulos de terceiros ou melhor ainda, crie nossos próprios módulos. Em todos os casos, não podemos manter todos os arquivos python que criamos em um diretório, podemos querer usar vários diretórios para classificar adequadamente nossos arquivos. O problema, no entanto, é que podemos precisar importar nossos módulos criados para a esquerda e direita. Nesses casos, se queremos evitar um erro de modulenotfound, podemos adicionar a localização do diretório - e lembre -se, ele deve ser um diretório, não um arquivo - ao sistema.caminho usando o sistema.caminho.Método apêndice ().
Codificação feliz!