我有一個包含此setup.py文件的項目:import setuptoolswith open("README.md", "r") as fh: long_description = fh.read()setuptools.setup( name="", version="0.0.1", author="", author_email="", description="", long_description=long_description, long_description_content_type="text/markdown", packages=setuptools.find_packages(where="./src", exclude=("./tests",)), classifiers=[ "Programming Language :: Python :: 3", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", ], python_requires='>=3.8',)這是我的項目目錄結構(前兩層):$ tree -L 2.├── README.md├── setup.py├── src│ └── my_pkg└── tests ├── conftest.py ├── data ├── __init__.py ├── integration ├── __pycache__ └── unit當我運行任何 setuptools 命令時,出現以下錯誤:$ python setup.py buildrunning buildrunning build_pyerror: package directory 'my_pkg' does not existpython setup.py develop對于其他命令(如和 )也會發生同樣的情況python setup.py bdist-wheel。我懷疑它與目錄有關src,find_packages(where="./src")如setup.py. 但是,我一直在關注文檔,并且看起來確實my_pkg在某個時候發現了該模塊。為什么build_py找不到呢?
1 回答

絕地無雙
TA貢獻1946條經驗 獲得超4個贊
find_packages()
自動生成包名。也就是說,在您的情況下,它所做的只是生成['my_pkg']
。它實際上并沒有告訴setup()
在哪里找到my_pkg
,只是它應該期望找到一個my_pkg
在某處調用的包。您必須單獨告訴setup()
它應該在哪里尋找包。這是否令人困惑且違反直覺?是的。無論如何,您可以使用參數來告訴setup()
在哪里找到。例如。my_pkg
package_dir
package_dir={"":"src"}
添加回答
舉報
0/150
提交
取消