Python: 包目录不存在
Python: Package directory does not exist
我正在尝试使用以下 setup.py 文件在 windows 10 中安装 python 软件包。
"""Setup file for uhd module"""
from setuptools import setup
setup(name='uhd',
version='3.14.0',
description='Universal Software Radio Peripheral (USRP) Hardware Driver Python API',
classifiers=[
'Development Status :: 4 - Beta',
'License :: OSI Approved :: GNU General Public License v3 (GPLv3)',
'Programming Language :: C++',
'Programming Language :: Python',
'Topic :: System :: Hardware :: Hardware Drivers',
],
keywords='SDR UHD USRP',
author='Ettus Research',
author_email='packages@ettus.com',
url='https://www.ettus.com/',
license='GPLv3',
package_dir={'': 'C:/Users/bcollins/UHD_PY/uhd/host/build/python'},
package_data={'uhd': ['*.so']},
zip_safe=False,
packages=['uhd'],
install_requires=['numpy'])
我使用命令
执行脚本
python setup.py install
我从包含 setup.py 文件的目录执行此操作。
这个returns下面的错误
error: package directory 'C:Users\bcollins\UHD_PY\uhd\host\build\python\uhd' does not exist
虽然在该位置有一个名为 "uhd" 的文件夹。该文件夹包含 __init__.py
文件
如果脚本不是在寻找这个文件夹,它在寻找什么?
我在这方面不是很有经验,但我最好的猜测是它在那个位置的 "uhd" 文件夹中寻找 .so 文件,但我不确定。
我正在使用 python 2.7.
package_dir
必须是相对路径,而不是绝对路径。 setuptools tries 下的 distutils 层拒绝绝对路径,但 C:
混淆了它。它最终将你的路径转换为
C:Users\bcollins\UHD_PY\uhd\host\build\python\uhd
请注意 C:
和 Users
之间缺少的反斜杠。这个路径是相对于你当前C盘工作目录的(windows drive handling is weird),相对于你的工作目录,这个路径是无效的。
这并没有回答最初的问题,但它是我修复相同错误的方法。
我有:
from setuptools import setup, find_packages
setup(
...
packages=find_packages('src', exclude=['test']),
...
)
我添加了 src
参数,因为我的包位于 src
,但事实证明 find_packages
本身就足够聪明。
删除第一个参数:
from setuptools import setup, find_packages
setup(
...
packages=find_packages(exclude=['test']),
...
)
这是在 Python 3.5 上,但我想它适用于大多数其他版本。
我发现当 python 脚本文件夹 (%python_root%\scripts) 不在环境 PATH 中时会发生此错误。
我有这个问题,原来你只需要在你的包目录后面加一个斜线: packages=['uhd']
应该是packages=['uhd/']
.
我正在尝试使用以下 setup.py 文件在 windows 10 中安装 python 软件包。
"""Setup file for uhd module"""
from setuptools import setup
setup(name='uhd',
version='3.14.0',
description='Universal Software Radio Peripheral (USRP) Hardware Driver Python API',
classifiers=[
'Development Status :: 4 - Beta',
'License :: OSI Approved :: GNU General Public License v3 (GPLv3)',
'Programming Language :: C++',
'Programming Language :: Python',
'Topic :: System :: Hardware :: Hardware Drivers',
],
keywords='SDR UHD USRP',
author='Ettus Research',
author_email='packages@ettus.com',
url='https://www.ettus.com/',
license='GPLv3',
package_dir={'': 'C:/Users/bcollins/UHD_PY/uhd/host/build/python'},
package_data={'uhd': ['*.so']},
zip_safe=False,
packages=['uhd'],
install_requires=['numpy'])
我使用命令
执行脚本python setup.py install
我从包含 setup.py 文件的目录执行此操作。
这个returns下面的错误
error: package directory 'C:Users\bcollins\UHD_PY\uhd\host\build\python\uhd' does not exist
虽然在该位置有一个名为 "uhd" 的文件夹。该文件夹包含 __init__.py
文件
如果脚本不是在寻找这个文件夹,它在寻找什么?
我在这方面不是很有经验,但我最好的猜测是它在那个位置的 "uhd" 文件夹中寻找 .so 文件,但我不确定。
我正在使用 python 2.7.
package_dir
必须是相对路径,而不是绝对路径。 setuptools tries 下的 distutils 层拒绝绝对路径,但 C:
混淆了它。它最终将你的路径转换为
C:Users\bcollins\UHD_PY\uhd\host\build\python\uhd
请注意 C:
和 Users
之间缺少的反斜杠。这个路径是相对于你当前C盘工作目录的(windows drive handling is weird),相对于你的工作目录,这个路径是无效的。
这并没有回答最初的问题,但它是我修复相同错误的方法。
我有:
from setuptools import setup, find_packages
setup(
...
packages=find_packages('src', exclude=['test']),
...
)
我添加了 src
参数,因为我的包位于 src
,但事实证明 find_packages
本身就足够聪明。
删除第一个参数:
from setuptools import setup, find_packages
setup(
...
packages=find_packages(exclude=['test']),
...
)
这是在 Python 3.5 上,但我想它适用于大多数其他版本。
我发现当 python 脚本文件夹 (%python_root%\scripts) 不在环境 PATH 中时会发生此错误。
我有这个问题,原来你只需要在你的包目录后面加一个斜线: packages=['uhd']
应该是packages=['uhd/']
.