>  기사  >  백엔드 개발  >  Python 패키지를 가져오는 방법은 무엇입니까?

Python 패키지를 가져오는 방법은 무엇입니까?

WBOY
WBOY앞으로
2023-04-18 21:16:034589검색

실행 파일과 대상 가져오기 모듈이 같은 디렉터리에 있습니다

직접 가져오기

예를 들어 ma_main의 <code>env 패키지에 있는 make_env.py /code> 파일에 있는 함수를 읽으려면<code>ma_main.py中导入env包中的make_env.py文件, 从而读取其中的函数

因为此时ma_main.pyenv包都在src这个根目录下, 所以可以直接import继续导入

Python 패키지를 가져오는 방법은 무엇입니까?

这里fromimport是因为make_env.py中只有一个函数就是make_env(), 所以直接import该函数, 在调用的时候可以直接写名字

Python 패키지를 가져오는 방법은 무엇입니까?

如果是from env import make_env, 那么调用make_env.py中的make_env()函数时, 还要用.进行声明

PS: from env import make_envimport env.make_env是一样的

执行文件和目标导入模块不在同一目录

如果执行文件和模块不在同一目录,这时候直接import是找不到自定义模块的。

Python 패키지를 가져오는 방법은 무엇입니까?

Python 패키지를 가져오는 방법은 무엇입니까?

例如这种情况: 要在main.py中导入pwcong包从而执行__init__.py的一些方法

然而main.py./Torch/main/下, 而pwcong./Torch/

即不在同一个目录, 此时main.py文件python解释器模块搜索的路径列表中不包含是./Torch

所以这时候就要用python中自带的sys包导入自定义模块的路径, 从而手动添加Python解释器在main.py中的模块搜索的路径列表 , 之后才能成功导入

Python解释器搜索模块的路径列表

  • 在Python中,当你导入一个模块时,解释器会从一个路径列表中查找该模块

  • 这个路径列表通常包括Python解释器安装的默认路径,以及在环境变量PYTHONPATH中指定的任何路径

  • 使用sys.path.append()函数可以向这个路径列表中添加新的路径,以便解释器能够找到你指定的模块。

  • 添加新路径后,你就可以通过import语句导入该路径下的模块。

  • 这并不会影响命名空间,而只是告诉解释器在哪里可以找到要导入的模块。

操作步骤

导入自定义模块的步骤如下:

  • 先导入sys模块

  • 然后通过sys.path.append(path) 函数来导入自定义模块所在的目录

  • 导入自定义模块。

即在main.py的最上面几行写入如下代码手动定义该文件的python解释器路径

import sys
sys.path.append(r"C:\Users\PC\Desktop\Torch") # 要加上地址生命符r, 并且要是绝对路径

__init__.py中定义一个hello函数, 打印hello

Python 패키지를 가져오는 방법은 무엇입니까?

通过sys.path.append添加解释器模块搜索的路径, 然后通过模块名执行函数

Python 패키지를 가져오는 방법은 무엇입니까?

一个模块必须要有__init__.py文件

在Python中,一个目录要被视为一个,它必须包含一个__init__.py文件。这个文件可以是一个空文件,或者包含一些包初始化的代码。

没有__init__.py文件的目录就只是一个目录, 其他py文件无法导入该目录下的任何py文件中的函数

__init__.py文件可能包含:

  • 声明命名空间__init__.py

    현재 ma_main.pyenv 패키지가 모두 src 이므로 직접 가져오고 계속해서 가져올 수 있습니다
  • Python 패키지를 가져오는 방법은 무엇입니까?

    여기fromimport를 다시 실행하는 이유는 make_env.pymake_env()라는 함수가 하나만 있기 때문입니다. >, 호출 시 이 함수를 직접 가져올 수 있습니다. from env import make_env인 경우 make_env.py에서 make_env() 함수를 호출할 때 .

    PS:
  • from env import make_envimport env.make_env와 동일합니다.
  • 실행 파일과 대상 가져온 모듈은 다음과 같습니다. 같은 디렉터리에 있지 않음실행 파일과 모듈이 같은 디렉터리에 있지 않으면 직접 가져오기는 사용자 정의 모듈을 찾을 수 없습니다.

    🎜Python 패키지를 가져오는 방법은 무엇입니까?🎜🎜Python 패키지를 가져오는 방법은 무엇입니까?🎜🎜예를 들어, 이 경우: main.py에서 pwcong 패키지를 가져와서 __init__.py🎜🎜의 일부 메소드는 main.py./Torch/main/ 아래에 있고 pwcong 아래에 있습니다./Torch/는 같은 디렉토리에 없습니다. 이때 main.py 파일 🎜은 검색된 경로 목록에 를 포함하지 않습니다. ./Torch🎜🎜따라서 이때 Python과 함께 제공되는 sys 패키지를 사용하여 🎜커스텀 모듈의 경로🎜를 가져와야 합니다. 그런 다음 main에 Python 인터프리터를 수동으로 추가하세요. py의 🎜 모듈 검색 경로 목록🎜은 🎜

    Python 인터프리터 검색 모듈 경로 목록

      🎜🎜 Python에서 🎜모듈을 가져오면🎜, 인터프리터는 경로 목록에서 🎜모듈을 🎜찾습니다. 🎜🎜🎜🎜이 경로 목록에는 일반적으로 🎜Python 인터프리터 설치를 위한 기본 경로🎜와 🎜환경 변수 PYTHONPATH에 지정된 모든 경로 🎜가 포함됩니다. 🎜🎜🎜🎜통역사가 지정한 모듈을 찾을 수 있도록 sys.path.append() 함수를 사용하여 이 경로 목록에 🎜새 경로를 추가🎜하세요. 🎜🎜🎜🎜새 경로를 추가한 후 import 문을 통해 경로 아래의 모듈을 가져올 수 있습니다. 🎜🎜🎜🎜이것은 🎜네임스페이스에 영향을 미치지 않고 🎜단순히 🎜통역사에게 가져올 모듈을 찾을 위치를 🎜알려줍니다. 🎜🎜

    작업 단계

    🎜사용자 정의 모듈을 가져오는 단계는 다음과 같습니다. 🎜
      🎜🎜먼저 sys 모듈을 가져옵니다🎜🎜🎜 🎜 그런 다음 sys.path.append(path) 함수를 전달하여 🎜사용자 정의 모듈이 있는 디렉터리를 가져옵니다🎜🎜🎜🎜🎜사용자 정의 모듈을 가져옵니다. 🎜🎜
    🎜즉, main.py의 맨 위 몇 줄에 다음 코드를 작성하여 파일의 Python 인터프리터 경로를 수동으로 정의합니다🎜rrreee🎜__init__.py에서 > hello 함수를 정의하고 hello🎜🎜Python 패키지를 가져오는 방법은 무엇입니까?🎜🎜sys를 통해 인쇄합니다. .path.append 인터프리터 모듈에서 검색한 경로를 추가한 후, 모듈명을 통해 함수 실행 🎜🎜Python 패키지를 가져오는 방법은 무엇입니까?🎜🎜a 모듈에는 __init__.py 파일이 있어야 합니다. 🎜🎜Python에서 🎜디렉토리🎜가 🎜패키지🎜로 간주되려면 해당 파일에 __init__가 포함되어야 합니다. py 파일입니다. 이 파일은 빈 파일이거나 일부 패키지 초기화 코드를 포함할 수 있습니다. 🎜🎜__init__.py 파일이 없는 디렉터리는 단지 디렉터리일 뿐입니다. 다른 py 파일은 이 디렉터리에 있는 py 파일의 기능을 가져올 수 없습니다. 포함: 🎜
      🎜🎜🎜 선언 네임스페이스 🎜: __init__.py 파일에는 변수, 클래스 및 함수 선언이 포함될 수 있습니다. 🎜🎜🎜🎜🎜초기화 코드 🎜 : 🎜init🎜.py 파일에는 패키지를 가져올 때 실행될 초기화 코드가 포함될 수 있습니다. 이는 패키지 구성이나 패키지의 종속성 설치 확인과 같은 특정 필수 작업을 수행하는 데 사용할 수 있습니다. 🎜🎜🎜🎜🎜Submodule import🎜: 🎜init🎜.py 파일에는 다른 모듈을 가져오는 코드가 포함될 수 있습니다. 이는 사용자가 액세스할 수 있도록 패키지의 네임스페이스에 하위 모듈을 추가하는 데 사용할 수 있습니다. 🎜

Namespace

Python에서 네임스페이스는 변수와 함수 이름이 포함된 사전으로, 각 식별자의 이름과 값을 기록하는 데 사용됩니다. Python 인터프리터의 각 네임스페이스는 사전의 키-값 쌍을 통해 변수와 함수에 액세스할 수 있는 사전 개체입니다.

Python에는 세 가지 네임스페이스가 있습니다.

  • 내장 네임스페이스: Python 인터프리터에 내장된 변수와 함수를 포함합니다. 이러한 변수와 함수는 모듈을 가져오지 않고도 프로그램에서 직접 사용할 수 있습니다. print() 함수, len() 함수 등 print()函数、len()函数等。

  • 全局命名空间:在模块定义时创建,包含了在模块文件中定义的变量和函数。可以在模块中的任何地方使用这些变量和函数。

  • 局部命名空间:在函数调用时创建,包含了函数中定义的变量和函数。只能在函数内部使用这些变量和函数。

命名空间的作用是避免不同命名空间之间的变量或函数名冲突,并且可以更好地管理程序中的变量和函数。在Python中,可以通过使用globalnonlocal

🎜🎜🎜글로벌 네임스페이스🎜: 모듈이 정의될 때 생성되며, 모듈 파일에 정의된 변수와 함수가 포함됩니다. 이러한 변수와 함수는 모듈의 어느 곳에서나 사용할 수 있습니다. 🎜🎜🎜🎜🎜로컬 네임스페이스🎜: 함수가 호출될 때 생성되며, 함수에 정의된 변수와 함수를 포함합니다. 이러한 변수와 함수는 함수 내에서만 사용할 수 있습니다. 🎜🎜🎜🎜네임스페이스의 역할은 서로 다른 네임스페이스 간의 변수 또는 함수 이름 충돌을 방지하고 프로그램에서 변수 및 함수를 더 잘 관리하는 것입니다. Python에서는 globalnonlocal 키워드를 사용하여 전역 및 비지역 네임스페이스의 변수에 액세스하고 수정할 수 있습니다. 🎜

위 내용은 Python 패키지를 가져오는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제