Python 使用setuptools将本地软件包安装到virtualenv中

Python 使用setuptools将本地软件包安装到virtualenv中,python,virtualenv,setuptools,Python,Virtualenv,Setuptools,我有一个虚拟电视,里面有多个小项目。考虑它们都是相等的,所以我的文件夹结构看起来是这样的: categorisation_ml/ categorisation.py setup.py __init__.py nlp/ nlp.py setup.py __init__.py etc/ __init__.py irrelevant_package_name/ __init__.py setup.py categorisatio

我有一个虚拟电视,里面有多个小项目。考虑它们都是相等的,所以我的文件夹结构看起来是这样的:

categorisation_ml/
    categorisation.py
    setup.py
    __init__.py
nlp/
    nlp.py
    setup.py
    __init__.py
etc/
__init__.py
irrelevant_package_name/
    __init__.py
    setup.py
    categorisation_ml/
        categorisation.py
        __init__.py
    nlp/
        nlp.py
        __init__.py
from setuptools import setup, find_packages

setup(
    name='package_name',
    version='1.0.0',
    description='This is a working setup.py',
    url='http://somesite.com',
    author='Roman',
    author_email='roman@somesite.com',
    packages=find_packages(),
    install_requires=[
        'numpy',
    ],
    zip_safe=False
)
python setup.py install  #(just installs it as is)
python setup.py develop  #(Keeps track of changes for development)
from categorisation_ml import categorisation
from nlp import nlp
我想将这两个包安装到同一个virtualenv中,以便在virtualenv中的任何地方都可以访问它们

使用和指南,我创建了一个类似这样的
setup.py
脚本(用于本例中的分类):

然后,我运行了
python setup.py install
,它似乎成功完成了。
当我将
cd
放入
nlp/
时,输入
python
命令行并尝试
导入分类
,我得到:
导入错误:没有名为分类的模块


我缺少什么?

包结构和setup.py似乎已关闭。应该是这样的:

categorisation_ml/
    categorisation.py
    setup.py
    __init__.py
nlp/
    nlp.py
    setup.py
    __init__.py
etc/
__init__.py
irrelevant_package_name/
    __init__.py
    setup.py
    categorisation_ml/
        categorisation.py
        __init__.py
    nlp/
        nlp.py
        __init__.py
from setuptools import setup, find_packages

setup(
    name='package_name',
    version='1.0.0',
    description='This is a working setup.py',
    url='http://somesite.com',
    author='Roman',
    author_email='roman@somesite.com',
    packages=find_packages(),
    install_requires=[
        'numpy',
    ],
    zip_safe=False
)
python setup.py install  #(just installs it as is)
python setup.py develop  #(Keeps track of changes for development)
from categorisation_ml import categorisation
from nlp import nlp
然后安装脚本如下所示:

categorisation_ml/
    categorisation.py
    setup.py
    __init__.py
nlp/
    nlp.py
    setup.py
    __init__.py
etc/
__init__.py
irrelevant_package_name/
    __init__.py
    setup.py
    categorisation_ml/
        categorisation.py
        __init__.py
    nlp/
        nlp.py
        __init__.py
from setuptools import setup, find_packages

setup(
    name='package_name',
    version='1.0.0',
    description='This is a working setup.py',
    url='http://somesite.com',
    author='Roman',
    author_email='roman@somesite.com',
    packages=find_packages(),
    install_requires=[
        'numpy',
    ],
    zip_safe=False
)
python setup.py install  #(just installs it as is)
python setup.py develop  #(Keeps track of changes for development)
from categorisation_ml import categorisation
from nlp import nlp
然后按如下方式安装:

categorisation_ml/
    categorisation.py
    setup.py
    __init__.py
nlp/
    nlp.py
    setup.py
    __init__.py
etc/
__init__.py
irrelevant_package_name/
    __init__.py
    setup.py
    categorisation_ml/
        categorisation.py
        __init__.py
    nlp/
        nlp.py
        __init__.py
from setuptools import setup, find_packages

setup(
    name='package_name',
    version='1.0.0',
    description='This is a working setup.py',
    url='http://somesite.com',
    author='Roman',
    author_email='roman@somesite.com',
    packages=find_packages(),
    install_requires=[
        'numpy',
    ],
    zip_safe=False
)
python setup.py install  #(just installs it as is)
python setup.py develop  #(Keeps track of changes for development)
from categorisation_ml import categorisation
from nlp import nlp
如果你停下来,这个应该会出现

package_name==1.0.0
然后在python中,导入应该如下所示:

categorisation_ml/
    categorisation.py
    setup.py
    __init__.py
nlp/
    nlp.py
    setup.py
    __init__.py
etc/
__init__.py
irrelevant_package_name/
    __init__.py
    setup.py
    categorisation_ml/
        categorisation.py
        __init__.py
    nlp/
        nlp.py
        __init__.py
from setuptools import setup, find_packages

setup(
    name='package_name',
    version='1.0.0',
    description='This is a working setup.py',
    url='http://somesite.com',
    author='Roman',
    author_email='roman@somesite.com',
    packages=find_packages(),
    install_requires=[
        'numpy',
    ],
    zip_safe=False
)
python setup.py install  #(just installs it as is)
python setup.py develop  #(Keeps track of changes for development)
from categorisation_ml import categorisation
from nlp import nlp

哪个python正在运行
python setup.py install
命令?virtualenv或用户的python。该软件包是否安装在您的virtualenv之外?@TomRon python的virtualenv已用完。不,该软件包似乎正在安装到virtualenv中。虚拟环境被称为
scienv
。不知道这是否重要,但categorization.py具有
#/usr/bin/env-python
shebang运行
scienv/bin/pip-freeze
时会得到什么输出?您是否使用
scienv/bin/python setup.py install安装了该软件包?@TomRon输出包含
categorization==1.0
。是的,我是用virtualenv安装的python@leoschet我很快回答了自己的问题。还没有测试过,但应该可以用。