无法通过 Pip 安装自定义 Python 包
Custom Python package is not accessible installed via Pip
我正在写一个 Python 包,这是我的文件结构。 simple_eda 是主文件夹,其中我有 init 文件和我的代码文件。在我的代码文件中,我有 Class SimpleEDA 来完成所有工作。导入我想使用
import SimpleEDA or from simple_eda import SimpleEDA
我的初始化文件是空的。
simple_eda
.init.py
.simple_eda.py
测试
setup.py
README.md
许可证
我已经使用这个命令为我的 simple_eda 构建了 whl。我在 setup.py 文件所在的主目录中使用了这个命令。
python3 setup.py sdist bdist_wheel
这在 dist 文件夹中成功创建了 whl 文件和 tar.gz 文件。所以我用了
pip 安装simple_eda.whl
然后安装包。所以我在我的终端中写 python 来激活 Python。我可以导入我的包用户
from simple_eda.simple_eda import SimpleEDA
但是如果我尝试在 Jupyter notebooks 中执行此操作,则会出现错误。
from simple_eda.simple_eda import SimpleEDA
这是我的 setup.py 文件代码。
import setuptools
with open("README.md", "r") as fh:
long_description = fh.read()
setuptools.setup(
name="simple_eda",
version="0.0.1",
author="Muhammad Shahid Sharif",
author_email="chshahidhamdam@gmail.com",
description="A wrapper around Pandas to perform Simple EDA with less code.",
long_description=long_description,
long_description_content_type="text/markdown",
url="my git link here",
packages=['simple_eda'],
install_requires = ['matplotlib==3.0.3','nltk==3.4.5',
'numpy==1.17.2',
'numpydoc==0.9.1',
'pandas==0.25.1',
'scikit-image==0.15.0',
'scikit-learn==0.22.2.post1',
'scipy==1.4.1',
'seaborn==0.9.0',
'spacy==2.2.3',
'spacy-langdetect==0.1.2',
'spacy-readability==1.3.0',
'textblob==0.15.3'],
classifiers=[
"Programming Language :: Python :: 3",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
],
python_requires='>=3.5',
)
我想像这样导入我的包
import SimpleEDA or from simple_eda import SimpleEDA
由于您处于 Conda 环境中,您似乎还没有为该环境安装 Jupyter。相反,您 运行 的 jupyter
可执行文件可能是全局安装的,而您的本地软件包是使用 pip
在本地(在 Conda 环境中)安装的。注意两个可执行文件的不同路径:
- 木星:
/snap/bin/jupyter
- python3:
$HOME/anaconda3/envs/eda_test_2/bin/python3
因此,只需为您的 Conda 环境安装 Jupyter,或者使用
conda install jupyter
或
pip install jupyter
旁注:由于您处于 Conda 环境中,因此您应该能够简单地使用 python
而不是 python3
。一个只是另一个的别名。如果您在 OS 上 python
仍然是 Python 2.
,这可能在您的环境之外不起作用
问题似乎是 OP 有多个 conda 环境,并且软件包安装在一个 python 环境中,但 jupyter notebook 无法访问该环境。
要在多个conda环境中使用jupyter notebook,推荐的做法是在基础环境中安装nb_conda_kernels
,然后在每个应该可用的环境中安装ipykernel
(或其他语言内核)在 jupyter 笔记本中。
conda install -n base nb_conda_kernels
conda install -n MYENV ipykernel
jupyter-notebook # Run this from the base environment
然后,导航到您的 jupyter 笔记本,将其打开,选择与您要使用的 conda 环境对应的内核,然后 运行 您的笔记本。
此外,要在特定的conda环境中安装自定义pip包,OP应该用他们的命令明确。例如,使用 python -m pip
而不是 pip
包装器。
conda activate MYENV # or source activate MYENV
python -m pip install MYPACKAGE.whl
在 OP 的情况下,他们应该在任何有自定义包的环境中安装 ipykernel
,然后在使用 jupyter notebook 时,他们应该使用该环境的内核。
相关:https://github.com/jupyter/help/issues/342#issuecomment-382837602
我正在写一个 Python 包,这是我的文件结构。 simple_eda 是主文件夹,其中我有 init 文件和我的代码文件。在我的代码文件中,我有 Class SimpleEDA 来完成所有工作。导入我想使用
import SimpleEDA or from simple_eda import SimpleEDA
我的初始化文件是空的。
simple_eda
.init.py
.simple_eda.py
测试
setup.py
README.md
许可证
我已经使用这个命令为我的 simple_eda 构建了 whl。我在 setup.py 文件所在的主目录中使用了这个命令。
python3 setup.py sdist bdist_wheel
这在 dist 文件夹中成功创建了 whl 文件和 tar.gz 文件。所以我用了
pip 安装simple_eda.whl
然后安装包。所以我在我的终端中写 python 来激活 Python。我可以导入我的包用户
from simple_eda.simple_eda import SimpleEDA
但是如果我尝试在 Jupyter notebooks 中执行此操作,则会出现错误。
from simple_eda.simple_eda import SimpleEDA
这是我的 setup.py 文件代码。
import setuptools
with open("README.md", "r") as fh:
long_description = fh.read()
setuptools.setup(
name="simple_eda",
version="0.0.1",
author="Muhammad Shahid Sharif",
author_email="chshahidhamdam@gmail.com",
description="A wrapper around Pandas to perform Simple EDA with less code.",
long_description=long_description,
long_description_content_type="text/markdown",
url="my git link here",
packages=['simple_eda'],
install_requires = ['matplotlib==3.0.3','nltk==3.4.5',
'numpy==1.17.2',
'numpydoc==0.9.1',
'pandas==0.25.1',
'scikit-image==0.15.0',
'scikit-learn==0.22.2.post1',
'scipy==1.4.1',
'seaborn==0.9.0',
'spacy==2.2.3',
'spacy-langdetect==0.1.2',
'spacy-readability==1.3.0',
'textblob==0.15.3'],
classifiers=[
"Programming Language :: Python :: 3",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
],
python_requires='>=3.5',
)
我想像这样导入我的包
import SimpleEDA or from simple_eda import SimpleEDA
由于您处于 Conda 环境中,您似乎还没有为该环境安装 Jupyter。相反,您 运行 的 jupyter
可执行文件可能是全局安装的,而您的本地软件包是使用 pip
在本地(在 Conda 环境中)安装的。注意两个可执行文件的不同路径:
- 木星:
/snap/bin/jupyter
- python3:
$HOME/anaconda3/envs/eda_test_2/bin/python3
因此,只需为您的 Conda 环境安装 Jupyter,或者使用
conda install jupyter
或
pip install jupyter
旁注:由于您处于 Conda 环境中,因此您应该能够简单地使用 python
而不是 python3
。一个只是另一个的别名。如果您在 OS 上 python
仍然是 Python 2.
问题似乎是 OP 有多个 conda 环境,并且软件包安装在一个 python 环境中,但 jupyter notebook 无法访问该环境。
要在多个conda环境中使用jupyter notebook,推荐的做法是在基础环境中安装nb_conda_kernels
,然后在每个应该可用的环境中安装ipykernel
(或其他语言内核)在 jupyter 笔记本中。
conda install -n base nb_conda_kernels
conda install -n MYENV ipykernel
jupyter-notebook # Run this from the base environment
然后,导航到您的 jupyter 笔记本,将其打开,选择与您要使用的 conda 环境对应的内核,然后 运行 您的笔记本。
此外,要在特定的conda环境中安装自定义pip包,OP应该用他们的命令明确。例如,使用 python -m pip
而不是 pip
包装器。
conda activate MYENV # or source activate MYENV
python -m pip install MYPACKAGE.whl
在 OP 的情况下,他们应该在任何有自定义包的环境中安装 ipykernel
,然后在使用 jupyter notebook 时,他们应该使用该环境的内核。
相关:https://github.com/jupyter/help/issues/342#issuecomment-382837602