首页 > 解决方案 > 无法通过 setuptools 或 pip 提供软件包

问题描述

我搜索了数百个类似的问题,但没有一个对我有用,我确信我遗漏了一些非常明显的东西,但我仍然不知道是什么。这是我的问题:

我有一个包含多个包的 python 项目,我需要其中一些可以从服务器的任何地方使用,所以如果我更新一个函数,我可以在导入它的任何地方使用相同的版本。这是我的结构:

myproject
   |
   |-- __init__.py
   |-- setup.py
   |
   |------api
   |       |
   |       |---__init__.py
   |       |---main.py      
   |       |
   |       endpoints
   |          |
   |          |-- __init__.py
   |          |-- something1.py
   |          |-- something2.py
   |          
   |
   |------database
   |         |
   |         |-- __init__.py
   |         |-- important1.py
   |
   |
   |------tools
   |         |-- __init__.py
   |         |-- important2.py
   |         |-- something3.py

我需要从和导入important1.pyimportant2.pysomething1.pysomething2.pysomething3.py

我尝试运行python setup.py install它并没有抛出任何错误,这是它的内容:

from setuptools import setup, find_packages
setup(name='myproject', version='1.0', packages=find_packages())

我打印了 find_packages() 并且它返回了正确的包,我也尝试运行pip install -e .

这是输出pip list

Package            Version   Location
------------------ --------- --------------------
Jinja2             2.11.2
MarkupSafe         1.1.1
myproject          1.0       /root/myproject

然而,当我尝试跑步时,import myproject我得到了 ModuleNotFoundError: No module named 'myproject'

我还尝试手动添加/root/myprojectsys.path,并通过.pth文件添加它,我尝试的一切,我都尝试使用 virtualenv 而没有 virtualenv,对我来说这似乎不可能,我一定错过了一些东西

标签: pythonpippackagesetuptools

解决方案


推荐阅读