安装 local/personal 库,以便 python 项目可以直接导入它
Install a local/personal library so it can be imported directly by a python project
我有一个愚蠢的问题,但到目前为止我还没有找到任何提及它的地方。我在 Python 中创建了一个 .py 文件,其中包含我在工作中使用的所有函数。每当我需要在脚本中使用它们时,我必须解决 .py 文件所在文件夹的路径,如下面的脚本。
import os
os.chdir('...\path-to-my-file')
import my-file as mfl
我的问题是:有没有什么办法可以将包含我的函数的 .py 文件保存在 Anaconda 的根目录下,并像调用 Numpy 一样调用它?我知道库在 'C:\Users\User\anaconda3\Lib' 文件夹中,所以我可以直接保存到该文件夹并以更简化的方式调用它,例如:
import numpy as np
import my-file as mfl
如果可行,是否有标准化的代码编写方式?
我建议您创建一个名为 PYTHONPATH
的 环境变量 ,它将为您指明附加功能。如果您不确定自己在做什么,最好保留 anaconda root 原样。 More on this here.
为了能够像处理任何其他模块一样import mypackage
,正确的方法是在本地使用 pip:
python -m pip install -e /path_to_package/mypackage/
python -m
确保您正在使用来自您当前正在使用的相同 python
安装的 pip 包。
-e
使其可编辑,i/e import mypackage
将在您进行一些更改后重新加载,而不是使用缓存的。
mypackage
必须是可安装包,i/e 包含 __init__.py
文件,以及一个基本的 setup.py
(或 pyproject.toml
文件用于 pipenv
)
最小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/ <----- this is a folder inside the other `mypackage/` folder
__init__.py
或作为一棵树:
└── python_perso folder
└── mypackage folder
├── mypackage folder
│ └── __init__.py
└── setup.py
[edit] 安装后目录如下:
(对于名为 mypackage
的包)
└── python_perso
└── mypackage
├── mypackage
│ ├── __init__.py
│ └── __pycache__
│ └── __init__.cpython-38.pyc
├── mypackage.egg-info
│ ├── PKG-INFO
│ ├── SOURCES.txt
│ ├── dependency_links.txt
│ └── top_level.txt
└── setup.py
5 directories, 7 files
我有一个愚蠢的问题,但到目前为止我还没有找到任何提及它的地方。我在 Python 中创建了一个 .py 文件,其中包含我在工作中使用的所有函数。每当我需要在脚本中使用它们时,我必须解决 .py 文件所在文件夹的路径,如下面的脚本。
import os
os.chdir('...\path-to-my-file')
import my-file as mfl
我的问题是:有没有什么办法可以将包含我的函数的 .py 文件保存在 Anaconda 的根目录下,并像调用 Numpy 一样调用它?我知道库在 'C:\Users\User\anaconda3\Lib' 文件夹中,所以我可以直接保存到该文件夹并以更简化的方式调用它,例如:
import numpy as np
import my-file as mfl
如果可行,是否有标准化的代码编写方式?
我建议您创建一个名为 PYTHONPATH
的 环境变量 ,它将为您指明附加功能。如果您不确定自己在做什么,最好保留 anaconda root 原样。 More on this here.
为了能够像处理任何其他模块一样import mypackage
,正确的方法是在本地使用 pip:
python -m pip install -e /path_to_package/mypackage/
python -m
确保您正在使用来自您当前正在使用的相同python
安装的 pip 包。-e
使其可编辑,i/eimport mypackage
将在您进行一些更改后重新加载,而不是使用缓存的。
mypackage
必须是可安装包,i/e 包含 __init__.py
文件,以及一个基本的 setup.py
(或 pyproject.toml
文件用于 pipenv
)
最小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/ <----- this is a folder inside the other `mypackage/` folder
__init__.py
或作为一棵树:
└── python_perso folder
└── mypackage folder
├── mypackage folder
│ └── __init__.py
└── setup.py
[edit] 安装后目录如下:
(对于名为 mypackage
的包)
└── python_perso
└── mypackage
├── mypackage
│ ├── __init__.py
│ └── __pycache__
│ └── __init__.cpython-38.pyc
├── mypackage.egg-info
│ ├── PKG-INFO
│ ├── SOURCES.txt
│ ├── dependency_links.txt
│ └── top_level.txt
└── setup.py
5 directories, 7 files