在 anaconda 环境中安装本地包

B.G*_*ees 7 python anaconda jupyter-notebook

问题:我想在特定的 conda 环境中安装本地包。为此,我阅读了当前的文档(python-packaging)。

封装结构:

$ pwd
~/…/test
.
|- requirements.txt
|- my_package
|   |-- __init__.py
|   |-- base.py
|- setup.py
Run Code Online (Sandbox Code Playgroud)

设置文件

# -*- coding: utf-8 -*-

import os
from setuptools import setup

with open('requirements.txt') as f:
    requirements = f.read().splitlines()

setup(
    name='my_package',
    version='2.0.0',
    author='B.Gees',
    author_email='B.Gees@gmail.com',
    license='MIT',
    packages=['my_package'],
    description='my package description',
    long_description='my package long description',
    keywords='chemistry machine learning cheminformatics',
    classifiers=[
        'Environment :: Console',
        'Intended Audience :: Developers',
        'Intended Audience :: Healthcare Industry',
        'Intended Audience :: Science/Research',
        'License :: OSI Approved :: MIT License',
        'Operating System :: OS Independent',
        'Programming Language :: Python :: 3',
        'Programming Language :: Python :: 3.5',
        'Programming Language :: Python :: 3.5.5',
        'Topic :: Scientific/Engineering',
        'Topic :: Scientific/Engineering :: Bio-Informatics',
        'Topic :: Scientific/Engineering :: Chemistry',
        'Topic :: Scientific/Engineering :: Pharmacokinetic',
        'Topic :: Software Development :: Libraries :: Python Modules',
    ],
    install_requires=requirements,
    zip_safe=False
)
Run Code Online (Sandbox Code Playgroud)

要求.txt

pandas==0.19.2
dill==0.2.7.1
cython==0.23.4
Run Code Online (Sandbox Code Playgroud)

__init__.py

# -*- coding: UTF-8 -*-

"""
my_package
~~~~~~~~~~

my package full description

:copyright: (c) 2018 by B.Gees.
:license: MIT, see LICENSE file for more details.
"""

from __future__ import print_function
from __future__ import unicode_literals
from __future__ import division
import logging

__title__ = 'my_package'
__version__ = '2.0.0'
__author__ = 'B.Gees'
__email__ = 'B.Gees@gmail.com'
__license__ = 'MIT'
__copyright__ = 'Copyright 2018 B.Gees'

log = logging.getLogger(__name__)
log.addHandler(logging.NullHandler())
Run Code Online (Sandbox Code Playgroud)

基础文件

# -*- coding: UTF-8 -*-

def titi(x):
    return x**2
Run Code Online (Sandbox Code Playgroud)

我使用以下代码行在特定的 conda 环境中安装我的包:

conda activate my_env
pip install . # In my package repository
Run Code Online (Sandbox Code Playgroud)

然而,当我尝试my_package在 jupyter notebook 中导入时,出现以下错误:

---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-9-daa52839320b> in <module>()
----> 1 import my_package

ImportError: No module named 'my_package'
Run Code Online (Sandbox Code Playgroud)

当我使用 pythonpip外部 conda 环境时,此安装工作正常。

问题:我不知道如何在特定的 conda 环境中正确安装我的软件包。我需要你的光来启发我。

配置:带有 conda3 和 python3.5 的 MacOSX ;需要兼容Linux 7

C.m*_*med 1

您使用的是 MacOSX,因此您应该首先使用source activate yourenvname,然后您可以使用您所做的来安装软件包。了解更多信息如何激活 Anaconda 环境

所以从:conda create --name my_env python=3.5 然后开始source activate my_env