如何使自己的本地包可以像 pip 安装包一样导入?
How to make own local package importable the same way as pip installed packages?
如何将我自己的包保存到 conda 环境中,以便在环境激活后可以从任何位置导入它?
当我们 conda activate my_env
和 pip install package
时,无论 file.py
的位置如何,都可以导入 package
。一旦 my_env
被激活,我该怎么做才能让我的 own_local_package
以同样的方式导入?
你可以在本地使用pip
来安装包,使用import mypackage
和其他模块一样,正确的方法是:
python -m pip install -e /path_to_package/mypackage/
python -m
确保您正在使用来自您当前正在使用的相同 python
安装的 pip 包。
-e
使其可编辑,i/e import mypackage
将在您进行一些更改后重新加载,而不是使用缓存的。
mypackage
必须包含一个 __init__.py
文件,以及基本 setup.py
(或 pyproject.toml
文件用于 pipenv
)
包结构必须是这样的:
mypackage/
setup.py
mypackage/
__init__.py
最小setup.py
from setuptools import find_packages, setup
setup(
name='mypackage', # Required
version='0.0.1', # Required
packages=find_packages(), # Required
)
更详细的包:
包结构必须是这样的:
mypackage/
setup.py
mypackage/
src/
__init__.py
__main__.py
additional python files
...
最小setup.py
from setuptools import find_packages, setup
setup(
name='mypackage', # Required
version='0.0.1', # Required
packages=find_packages(where="/src"), # Required
)
如何将我自己的包保存到 conda 环境中,以便在环境激活后可以从任何位置导入它?
当我们 conda activate my_env
和 pip install package
时,无论 file.py
的位置如何,都可以导入 package
。一旦 my_env
被激活,我该怎么做才能让我的 own_local_package
以同样的方式导入?
你可以在本地使用pip
来安装包,使用import mypackage
和其他模块一样,正确的方法是:
python -m pip install -e /path_to_package/mypackage/
python -m
确保您正在使用来自您当前正在使用的相同python
安装的 pip 包。-e
使其可编辑,i/eimport mypackage
将在您进行一些更改后重新加载,而不是使用缓存的。
mypackage
必须包含一个 __init__.py
文件,以及基本 setup.py
(或 pyproject.toml
文件用于 pipenv
)
包结构必须是这样的:
mypackage/
setup.py
mypackage/
__init__.py
最小setup.py
from setuptools import find_packages, setup
setup(
name='mypackage', # Required
version='0.0.1', # Required
packages=find_packages(), # Required
)
更详细的包:
包结构必须是这样的:
mypackage/
setup.py
mypackage/
src/
__init__.py
__main__.py
additional python files
...
最小setup.py
from setuptools import find_packages, setup
setup(
name='mypackage', # Required
version='0.0.1', # Required
packages=find_packages(where="/src"), # Required
)