Colunas calculadas no SharePoint | Uma visão geral
Descubra a importância das colunas calculadas no SharePoint e como elas podem realizar cálculos automáticos e obtenção de dados em suas listas.
Já se viu atolado em arquivos Python, lutando para importar um módulo de um diretório pai? Se assim for, você está em boa companhia. Às vezes, o sistema de importação do Python pode parecer um labirinto sinuoso, mas não se preocupe, estamos aqui para ajudá-lo a navegar!
Para importar de um diretório pai em Python, você pode usar o módulo sys . Ao inserir o diretório necessário na lista sys.path, você fornece ao interpretador o local do módulo desejado. Depois de modificar o sys.path, você pode importar o módulo de destino usando a instrução de importação padrão.
Neste artigo, exploraremos como você pode importar de diretórios pai em Python. Além disso, veremos casos de uso específicos de importação que o ajudarão a entender melhor a estrutura subjacente dos diretórios.
Vamos entrar nisso!
Índice
Como importar em Python
Vamos pular direto para o tópico de hoje: importar em Python. Essas linhas simples de código no início de seus scripts Python que geralmente começam com import ou from ? Esse é o seu ingresso para aproveitar o poder das extensas bibliotecas e módulos do Python.
Nesta seção, examinaremos o código para importar do diretório pai em Python. Também veremos possíveis erros que podem surgir ao importar módulos do diretório pai.
O que é o sistema de importação do Python?
O sistema de importação do Python permite a reutilização e organização eficiente do código. Isso facilita a manutenção de projetos complexos.
Para importar um módulo ou pacote em Python, você pode usar a instrução import . Os módulos são distribuídos como pacotes, que são diretórios com uma coleção de arquivos Python.
Para importar um módulo do diretório pai, você pode usar o módulo sys.path para adicionar o diretório pai ao caminho do Python. Depois de adicionar o diretório pai, você pode importar o módulo usando a instrução import .
Demonstração de importação do diretório pai
Para dar uma demonstração clara da importação do diretório pai, vamos examinar uma série de etapas para ajudá-lo a entender todo o processo.
1. Criando os diretórios e arquivos necessários
Primeiro, abra seu explorador de arquivos e navegue até a unidade local desejada. Estou usando minha unidade E local, portanto, criarei um novo diretório chamado my_project .
Dentro de my_project , crie outro diretório chamado module_dir .
Então, agora você deve ter:
E:
|-- /my_project
|-- /module_dir
2. Adicionando arquivos Python
Em seguida, crie um novo arquivo .py chamado main.py no diretório my_project .
Depois disso, crie outro arquivo Python chamado my_module.py em module_dir .
Sua estrutura agora deve ficar assim:
E:
|-- /my_project
|-- main.py
|-- /module_dir
|-- my_module.py
Se você estiver usando o Visual Studio Code , sua estrutura de diretórios deve ter a seguinte aparência:
3. Editando os arquivos Python
Abra seu my_module.py e adicione o seguinte código:
def my_function():
print("Hello from my_module!")
Em seguida, vá em frente e salve e feche o arquivo.
Agora, abra main.py e adicione o seguinte código:
import sys
import os
# Get the parent directory
parent_dir = os.path.dirname(os.path.realpath(__file__))
# Add the parent directory to sys.path
sys.path.append(parent_dir)
# Import the module from the parent directory
from module_dir import my_module
# Use a function from my_module
my_module.my_function()
Neste script, primeiro descobrimos a localização do diretório um nível acima do script que estamos executando (esse é o diretório pai). Em seguida, estamos dizendo ao Python para também procurar nessa pasta pai quando precisar importar módulos.
Depois de fazer isso, estamos importando um módulo chamado my_module que está dentro de um diretório chamado module_dir localizado neste diretório pai. Finalmente, estamos chamando uma função chamada my_function de my_module .
Depois de adicionar o código acima, salve e feche o arquivo.
4. Executando o Código
Para executar este código, abra o terminal do editor de código desejado e execute o arquivo main.py. Se você estiver usando o Visual Studio Code, a saída deve ser semelhante a esta:
O main.py irá importar a função de my_module.py , conforme a imagem acima.
Este exemplo mostra em detalhes como o sistema de arquivos e a importação do diretório pai funcionam em Python.
Como lidar com ImportError e ModuleNotFoundError em Python
O Python gerará uma exceção ImportError quando o módulo que você está tentando importar não for encontrado durante o processo de importação.
ImportError é uma subclasse da exceção ModuleNotFoundError . É gerado quando o módulo importado não existe ou não pode ser carregado.
The following are examples of scenarios when these may occur:
The module or package is not in the sys.path.
The module or package name is misspelled or does not exist.
There is a problem with the module’s code, preventing it from being properly imported.
When encountering these errors, you could use the following solutions:
Double-checking the spelling and existence of the module or package.
Adding the necessary directory to sys.path using append() or insert().
Fixing any issues in the module’s code that may be hindering its import.
To learn more about handling errors in Python, check the following video out:
After understanding how importing works in Python, it’s also important that you gain some familiarity with Python’s directory structure.
Directory structure and importing go hand-in-hand with each other as importing requires an understanding of the directory structure, so let’s go over that in the next section.
Python Directory Structure
Understanding the Python directory structure is more than just knowing where to put your scripts or where to find that library you just installed.
It’s like having a clean, well-organized desk: you’ll know exactly where everything is, and your productivity will skyrocket, so let’s go over the basics in this section.
Package Structure
The directory structure of a Python project is essential for correct organization. If you structure your package properly, it’ll help you minimize the chance of naming conflicts. Furthermore, it’ll also enable you to easily navigate through your filesystem.
The following is a typical Python project directory structure:
project/
?
??? package1/
? ??? __init__.py
? ??? module1.py
? ??? module2.py
?
??? package2/
? ??? __init__.py
? ??? module3.py
? ??? module4.py
?
??? main.py
In the example above, project is the root directory containing two sub-packages, package1 and package2. Each package has its .py files and a unique init.py file.
What Are init.py Files?
init.py files are important for defining the package’s behavior when it’s imported. These files are executed when their parent package is imported.
The init.py files can be empty or contain initialization code. They also indicate to Python that the folder should be treated as a package.
To import a module from a parent directory, you can use the sys.path method. You’ll need to append the parent directory path to sys.path.
To demonstrate this, let’s build up on our previous example. We had the following directory structure:
E:
|-- /my_project
|-- main.py
|-- /module_dir
|-- my_module.py
Now, let’s add the init.py file to my_module directory. You can leave this file empty for now. Its presence indicates to Python that this directory should be treated as a package.
Your directory structure should now look like the following:
After adding the init.py file, you must make changes to your main.py file to instruct it to treat the module_dir folder as a package. Your main.py file should now have the following code:
import sys
import os
# Get the parent directory
parent_dir = os.path.dirname(os.path.realpath(__file__))
# Add the parent directory to sys.path
sys.path.append(parent_dir)
# Import my_module from the package module_dir
import module_dir
# Call my_function from my_module
my_module.my_function()
In this example, main.py imports the module_dir package, and then calls the function my_function() from my_module within that package.
Note the change in the call to the my_function; because we are now treating module_dir as a package, we have to include the package name when calling functions from modules within the package.
The output will be similar to the previous one. The only change we made was to treat module_dir as a package with the inclusion of init.py file.
Python Search Path
Ever wondered how Python knows where to find the modules you’re trying to import? Or maybe you’ve encountered an annoying ‘ModuleNotFoundError’ and couldn’t figure out why?
In this section, we’re going to tackle these mysteries head-on and delve into the concept of the Python search path.
The Python search path, also known as sys.path, is Python’s little roadmap to finding all the modules you need. Like a diligent scout, Python uses this path to scour your computer for modules whenever you use the import statement.
Understanding how it works can save you from headaches and help you troubleshoot when things go awry, so let’s go over some basics!
1. What is the sys.path List in Python?
The sys.path list is a crucial component when importing modules in a directory. It’s a list of strings that represents the module search path.
Each string in the list is a directory location where Python looks for modules (*.py files) or packages (folders containing init.py files).
The following example shows you how to view your current sys.path list:
import sys
for path in sys.path:
print(path)
After running the above code, you’ll see an output like the following:
You can also add new directories to the sys.path list so that Python finds your custom modules.
For instance:
import sys
sys.path.append('/path/to/new/module/directory')
2. What are PythonPath Environment Variables?
Another way you can manage the module search path is by using the PYTHONPATH environment variable.
PYTHON PATH is a string containing a list of directories that is appended to the default sys.path list. This means you can add directories to PYTHONPATH. This allows Python to search for modules in those directories when importing.
Setting the PYTHONPATH environment variable depends on your operating system:
Unix-based systems (Linux, macOS): You can use the export command in your terminal or add the following line to your shell configuration file (.bashrc, .zshrc or similar):
export PYTHONPATH="/path/to/module/directory1:/path/to/module/directory2"
Windows OS: Go to System Properties > Environment Variables, and under User variables, click New to create a new variable with the name: “PYTHONPATH” and the value as a list of directory paths separated by a semi-colon (;).
C:pathtomoduledirectory1;C:pathtomoduledirectory2
Once the path variable is set, you can run your Python script. It will search for imported modules in those directories as well as the default ones in sys.path.
When organizing your code into files and folders, you’ll frequently come across relative imports and adjusting sys.path.
In the next section, we’ll explore both and see how they fit into the framework for Python imports.
Parent Directory Imports
You can organize code into different folders and files to improve both readability and maintainability. However, importing modules from parent directories can be a bit tricky.
In this section, we’ll discuss two approaches to achieve this:
Relative Imports
Adjusting sys.path
1. Relative Imports
Relative imports allow you to import modules based on their relative position in the directory hierarchy.
You can use the dot (.) notation to refer to the current directory or double dot (..) notation to refer to the parent directory.
Suppose you have a directory structure like the following:
parent_directory/
?
??? module_a.py
?
??? sibling_directory/
??? module_b.py
Inside module_b.py, you can use relative imports to access module_a.py:
from .. import module_a
The double dot refers to the parent directory. It is important to note that relative imports only work if the parent directory is a package (has an init.py file).
2. Adjusting sys.path
You can also import modules from a parent directory by modifying the sys.path.
Antes da instrução de importação , você pode anexar o caminho do diretório pai ao sys.path . Primeiro, você precisa importar o módulo sys . Em seguida, você usa o módulo os para obter o caminho do diretório pai.
Suponha que você tenha uma estrutura de diretórios como a seguinte:
project_root/
?
??? parent_directory/
? ??? module_a.py
?
??? current_directory/
??? module_b.py
Em module_b.py , você pode anexar o caminho do diretório pai a sys.path assim:
import os
import sys
parent_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(parent_dir)
import module_a
Agora, o Python procurará module_a.py no diretório pai ao importá-lo em module_b.py .
Você pode usar a abordagem de importação relativa ou a abordagem sys.path para importar módulos de um diretório pai.
Como trabalhar com módulos e pacotes
Em Python, módulos e pacotes são uma forma de organizar e reutilizar código. Você pode usá-los para dividir projetos complexos em partes gerenciáveis.
Esta seção discutirá como trabalhar com módulos e pacotes em Python . Também incluiremos conceitos-chave, como:
Namespaces
Variáveis e Definições
Declarações de Importação
1. O que são namespaces?
Namespaces em Python são uma forma de garantir que os nomes de variáveis, funções e classes não entrem em conflito entre diferentes módulos.
Existem diferentes níveis de namespaces em Python, como:
Namespace global: Refere-se ao namespace de todo o módulo.
Namespace local: Refere-se ao namespace dentro de uma função ou classe.
Você pode obter um nome em um namespace específico com a notação namespace[name] .
2. O que são variáveis e definições?
Em um script Python, você pode definir variáveis, funções e classes. Essas definições são armazenadas no namespace do script.
Ao importar o script como um pacote, você pode acessar e reutilizar suas definições em outras partes do seu projeto.
Veja a seguir um exemplo de como definir uma variável e uma função no mesmo namespace:
# my_variable.py
my_variable = 5
def my_function(x):
return x + my_variable
Este módulo possui uma variável my_variable e uma função my_function .
Para executar este código, você pode criar um novo arquivo chamado my_variable.py e colocar o código lá conforme mostrado abaixo:
Agora, você pode importar este arquivo e utilizá-lo em outro script conforme abaixo:
Depois de executar o arquivo main.py , você obterá uma saída semelhante à seguinte:
3. O que são declarações de importação?
Você pode importar arquivos, módulos ou pacotes em Python com a declaração de importação
Alguns métodos comuns de importação são:
import module_name : Este método importa um módulo, tornando todas as suas definições acessíveis com a notação module_name.definition_name .
import mymodule
result = mymodule.my_function(3)
from module_name import some_definition : Este método importa uma definição específica de um módulo, permitindo que você o use diretamente sem o prefixo do módulo.
from mymodule import my_function
result = my_function(3)
from module_name import * : Este método importa todas as definições de um módulo, mas não é recomendado, pois pode levar a conflitos de nomenclatura.
Pensamentos finais
Compreender como importar de um diretório pai em Python é importante para manter uma base de código organizada.
Esse conhecimento permite que você projete seus projetos de maneira mais modular. Também aumenta a capacidade de reutilização do seu código. Ao estruturar seu código em módulos e pacotes separados, você pode evitar a repetição do código e facilitar sua manutenção e atualização.
A habilidade de usar instruções import e from é mais valiosa quando você está trabalhando em projetos maiores em que as funcionalidades são divididas em diferentes diretórios.
Sabendo ajustar corretamente o caminho do Python para importar módulos, você pode acessar funcionalidades definidas em um diretório enquanto trabalha em outro.
Lembre-se, a chave para dominar o Python — ou qualquer linguagem de programação — está na prática consistente e na curiosidade insaciável. Então, continue explorando, continue experimentando e continue se desafiando.
Com este guia rápido, você deve estar bem equipado para lidar com quaisquer quebra-cabeças de importação que o Python apresentar a você. Mas não pare por aqui. Há todo um universo de técnicas e truques do Python esperando para serem descobertos!
Descubra a importância das colunas calculadas no SharePoint e como elas podem realizar cálculos automáticos e obtenção de dados em suas listas.
Descubra todos os atributos pré-atentivos e saiba como isso pode impactar significativamente seu relatório do LuckyTemplates
Aprenda a contar o número total de dias em que você não tinha estoque por meio dessa técnica eficaz de gerenciamento de inventário do LuckyTemplates.
Saiba mais sobre as exibições de gerenciamento dinâmico (DMV) no DAX Studio e como usá-las para carregar conjuntos de dados diretamente no LuckyTemplates.
Este tutorial irá discutir sobre Variáveis e Expressões dentro do Editor do Power Query, destacando a importância de variáveis M e sua sintaxe.
Aprenda a calcular a diferença em dias entre compras usando DAX no LuckyTemplates com este guia completo.
Calcular uma média no LuckyTemplates envolve técnicas DAX para obter dados precisos em relatórios de negócios.
O que é self em Python: exemplos do mundo real
Você aprenderá como salvar e carregar objetos de um arquivo .rds no R. Este blog também abordará como importar objetos do R para o LuckyTemplates.
Neste tutorial de linguagem de codificação DAX, aprenda como usar a função GENERATE e como alterar um título de medida dinamicamente.