fairseq pip install 时 pkg_resources 出现 TypeError的解决方案。

本文记录了在安装fairseq的CUDA扩展时遇到的一个TypeError问题及其解决方案。通过修改相关文件并采用python setup.py develop的方式安装,成功避免了错误。文中还提到了在临时目录中修改文件的局限性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

2024.3. 更新:
使用 pip install -e ./ --no-build-isolation 参数。


之前安装fairseq的时候没有安装CUDA扩展,最近在安装CUDA扩展的时候重新pip安装发现出现BUG:

File "C:\Users\lsj\AppData\Local\Temp\pip-build-env-src2q6a2\overlay\Lib\site-packages\pkg_resources\_vendor\packaging\version.py", line 195, in __init__
          match = self._regex.search(version)
      TypeError: expected string or bytes-like object

这个问题很好定位,改为str(version)可以解决,但是扯就扯在run editable_wheel 的时候会创建一个临时目录,所有的文件都会重新在这个目录中创建,并且貌似在site_packages里面改了之后并不能应用到这个临时目录里面的文件。例如,在site_packages里面我已经将这个文件改了
在这里插入图片描述
但是编译时还是出现以上的问题。
目前我的解决方法是采用 python setup.py develop的方法进行安装。虽然是编译时不会出现上述问题,但还是存在一些其他的BUG。关于其他的BUG,可以查看我其他的文档。

ubuntu@hi3798mv100:~/moonraker$ ./scripts/install-moonraker.sh Installing from Moonraker source... ###### Installing Moonraker System Packages... Linux Distribution: ubuntu 20.04 Packages: python3-virtualenv python3-dev libopenjp2-7 libsodium-dev zlib1g-dev libjpeg-dev packagekit wireless-tools curl build-essential ###### Running apt-get update... Hit:1 http://repo.huaweicloud.com/ubuntu-ports focal InRelease Hit:2 http://repo.huaweicloud.com/ubuntu-ports focal-updates InRelease Hit:3 http://repo.huaweicloud.com/ubuntu-ports focal-backports InRelease Hit:4 http://repo.huaweicloud.com/ubuntu-ports focal-security InRelease Hit:5 https://www.ecoo.top/update/repo/armhf histb InRelease Reading package lists... Done Reading package lists... Done Building dependency tree Reading state information... Done libjpeg-dev is already the newest version (8c-2ubuntu8). libsodium-dev is already the newest version (1.0.18-1). python3-dev is already the newest version (3.8.2-0ubuntu2). python3-dev set to manually installed. wireless-tools is already the newest version (30~pre9-13ubuntu1). build-essential is already the newest version (12.8ubuntu1.1). curl is already the newest version (7.68.0-1ubuntu2.25). libopenjp2-7 is already the newest version (2.3.1-1ubuntu4.20.04.4). packagekit is already the newest version (1.1.13-2ubuntu1.1). zlib1g-dev is already the newest version (1:1.2.11.dfsg-2ubuntu1.5). zlib1g-dev set to manually installed. python3-virtualenv is already the newest version (20.0.17-1ubuntu0.4). 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. ###### Installing python virtual environment... /usr/bin/virtualenv:6: DeprecationWarning: pkg_resources is deprecated as an API. See https ://setuptools.pypa.io/en/latest/pkg_resources.html from pkg_resources import load_entry_point Traceback (most recent call last): File "/usr/bin/virtualenv", line 11, in <module> load_entry_point('virtualenv==20.0.17', 'console_scripts', 'virtualenv')() File "/home/ubuntu/.local/lib/python3.8/site-packages/pkg_resources/__init__.py", line 54 2, in load_entry_point return get_distribution(dist).load_entry_point(group, name) File "/home/ubuntu/.local/lib/python3.8/site-packages/pkg_resources/__init__.py", line 32 19, in load_entry_point return ep.load() File "/home/ubuntu/.local/lib/python3.8/site-packages/pkg_resources/__init__.py", line 27 81, in load return self.resolve() File "/home/ubuntu/.local/lib/python3.8/site-packages/pkg_resources/__init__.py", line 27 87, in resolve module = __import__(self.module_name, fromlist=['__name__'], level=0) File "/usr/lib/python3/dist-packages/virtualenv/__init__.py", line 3, in <module> from .run import cli_run File "/usr/lib/python3/dist-packages/virtualenv/run/__init__.py", line 13, in <module> from .plugin.creators import CreatorSelector File "/usr/lib/python3/dist-packages/virtualenv/run/plugin/creators.py", line 6, in <modu le> from virtualenv.create.via_global_ref.builtin.builtin_way import VirtualenvBuiltin File "/usr/lib/python3/dist-packages/virtualenv/create/via_global_ref/builtin/builtin_way .py", line 7, in <module> from virtualenv.create.creator import Creator File "/usr/lib/python3/dist-packages/virtualenv/create/creator.py", line 14, in <module> from virtualenv.discovery.cached_py_info import LogCmd File "/usr/lib/python3/dist-packages/virtualenv/discovery/cached_py_info.py", line 26, in <module> _CACHE[Path(sys.executable)] = PythonInfo() File "/usr/lib/python3/dist-packages/virtualenv/discovery/py_info.py", line 88, in __init __ self.distutils_install = {u(k): u(v) for k, v in self._distutils_install().items()} File "/usr/lib/python3/dist-packages/virtualenv/discovery/py_info.py", line 118, in _dist utils_install i.finalize_options() File "/home/ubuntu/.local/lib/python3.8/site-packages/setuptools/_distutils/command/insta ll.py", line 408, in finalize_options 'dist_fullname': self.distribution.get_fullname(), File "/home/ubuntu/.local/lib/python3.8/site-packages/setuptools/_distutils/dist.py", lin e 1177, in get_fullname return self._fullname(self.get_name(), self.get_version()) File "/home/ubuntu/.local/lib/python3.8/site-packages/setuptools/_distutils/dist.py", lin e 1195, in _fullname canonicalize_version(version, strip_trailing_zero=False), TypeError: canonicalize_version() got an unexpected keyword argument 'strip_trailing_zero'
最新发布
06-23
在终端输入python setup.py install指令后报错,怎么解决:【PS D:\论文\tooth_code\ToothGroupNetwork-main\external_libs\pointops> python setup.py install No CUDA runtime is found, using CUDA_HOME='C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA\v12.2' running install C:\Users\Yanisin\Anaconda3\lib\site-packages\setuptools\command\install.py:37: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools. setuptools.SetuptoolsDeprecationWarning, C:\Users\Yanisin\Anaconda3\lib\site-packages\setuptools\command\easy_install.py:159: EasyInstallDeprecationWarning: easy_install command is deprecated. Use build and pip and other standards-based tools. EasyInstallDeprecationWarning, running bdist_egg running egg_info creating pointops.egg-info writing manifest file 'pointops.egg-info\SOURCES.txt' C:\Users\Yanisin\Anaconda3\lib\site-packages\torch\utils\cpp_extension.py:476: UserWarning: Attempted to use ninja as the BuildExtension backend but we could not find ninja.. Falling back to using the slow distutils backend. warnings.warn(msg.format('we could not find ninja.')) writing manifest file 'pointops.egg-info\SOURCES.txt' running install_lib running build_ext C:\Users\Yanisin\Anaconda3\lib\site-packages\torch\utils\cpp_extension.py:358: UserWarning: Error checking compiler version for cl: [WinError 2] 系统找不到指定的文件。 warnings.warn(f'Error checking compiler version for {compiler}: {error}') Traceback (most recent call last): File "setup.py", line 35, in <module> cmdclass={'build_ext': BuildExtension} File "C:\Users\Yanisin\Anaconda3\lib\site-packages\setuptools\__init__.py", line 155, in setup return distutils.core.setup(**attrs) File "C:\Users\Yanisin\Anaconda3\lib\site-packages\setuptools\_distutils\core.py", line 148, in setup return run_commands(dist) File "C:\Users\Yanisin\Anaconda3\lib\site-packages\setuptools\_distutils\core.py", line 163, in run_commands dist.run_commands() File "C:\Users\Yanisin\Anaconda3\lib\site-packages\setuptools\_distutils\dist.py", line 967, in run_commands self.run_command(cmd) File "C:\Users\Yanisin\Anaconda3\lib\site-packages\setuptools\_distutils\dist.py", line 986, in run_command cmd_obj.run() File "C:\Users\Yanisin\Anaconda3\lib\site-packages\setuptools\command\install.py", line 74, in run self.do_egg_install() File "C:\Users\Yanisin\Anaconda3\lib\site-packages\setuptools\command\install.py", line 116, in do_egg_install self.run_command('bdist_egg') File "C:\Users\Yanisin\Anaconda3\lib\site-packages\setuptools\_distutils\cmd.py", line 313, in run_command self.distribution.run_command(command) File "C:\Users\Yanisin\Anaconda3\lib\site-packages\setuptools\_distutils\dist.py", line 986, in run_command cmd_obj.run() File "C:\Users\Yanisin\Anaconda3\lib\site-packages\setuptools\command\bdist_egg.py", line 164, in run cmd = self.call_command('install_lib', warn_dir=0) File "C:\Users\Yanisin\Anaconda3\lib\site-packages\setuptools\command\bdist_egg.py", line 150, in call_command self.run_command(cmdname) File "C:\Users\Yanisin\Anaconda3\lib\site-packages\setuptools\_distutils\cmd.py", line 313, in run_command self.distribution.run_command(command) File "C:\Users\Yanisin\Anaconda3\lib\site-packages\torch\utils\cpp_extension.py", line 382, in _check_cuda_version torch_cuda_version = packaging.version.parse(torch.version.cuda) File "C:\Users\Yanisin\Anaconda3\lib\site-packages\pkg_resources\_vendor\packaging\version.py", line 49, in parse return Version(version) File "C:\Users\Yanisin\Anaconda3\lib\site-packages\pkg_resources\_vendor\packaging\version.py", line 264, in __init__ match = self._regex.search(version) TypeError: expected string or bytes-like object 】
03-21
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值