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我很快回答了自己的问题。还没有测试过,但应该可以用。