提供了预期的或错误的typedisting字节操作系统路径对象,不是lis

2024-10-01 02:20:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图构建sklearn.tree子包,其中包含一些Cython代码。我在Windows上使用python3.6.1和numpy1.12.1。在

文件setup.py(可以下载here)包含distutils配置,代码如下 config.add_extension("_tree", sources=["_tree.pyx"],...) 所以我希望sources(这个变量通过下面列出的一个长函数堆栈进行浮点运算)是一个字符串列表。在

但是,在尝试构建包时,我收到了下面列出的输出。这意味着build_src.py中函数中的source不是一个字符串而是一个列表。在

所以问题是:

  1. 事实上,列表在哪里变成了一个字符串?在
  2. 这个错误是由我构建模块的方式引起的吗?如果是,如何正确地构建它?在
  3. 这个错误是由setup.py的写入方式引起的吗?如果是这样,如何改变?sklearn的开发者是如何使用它的?在
  4. 这个错误是由我的环境造成的吗?如果是,我应该改变什么?在

C:\Users\ddale\Downloads\scikit-learn-master\sklearn\tree>python setup.py build_ext appending tree.tests configuration to tree Ignoring attempt to set 'name' (from 'tree' to 'tree.tests') running build_ext running build_src build_src building extension "tree._tree" sources Warning: Assuming default configuration (tests/{setup_tests,setup}.py was not found)Traceback (most recent call last): File "setup.py", line 39, in <module> setup(**configuration_old().todict()) File "C:\Users\ddale\AppData\Local\Continuum\Anaconda3\lib\site-packages\numpy\distutils\core.py", line 166, in setup return old_setup(**new_attr) File "C:\Users\ddale\AppData\Local\Continuum\Anaconda3\lib\distutils\core.py", line 148, in setup dist.run_commands() File "C:\Users\ddale\AppData\Local\Continuum\Anaconda3\lib\distutils\dist.py", line 955, in run_commands self.run_command(cmd) File "C:\Users\ddale\AppData\Local\Continuum\Anaconda3\lib\distutils\dist.py", line 974, in run_command cmd_obj.run() File "C:\Users\ddale\AppData\Local\Continuum\Anaconda3\lib\site-packages\numpy\distutils\command\build_ext.py", line 82, in run self.run_command('build_src') File "C:\Users\ddale\AppData\Local\Continuum\Anaconda3\lib\distutils\cmd.py", line 313, in run_command self.distribution.run_command(command) File "C:\Users\ddale\AppData\Local\Continuum\Anaconda3\lib\distutils\dist.py", line 974, in run_command cmd_obj.run() File "C:\Users\ddale\AppData\Local\Continuum\Anaconda3\lib\site-packages\numpy\distutils\command\build_src.py", line 148, in run self.build_sources() File "C:\Users\ddale\AppData\Local\Continuum\Anaconda3\lib\site-packages\numpy\distutils\command\build_src.py", line 165, in build_sources self.build_extension_sources(ext) File "C:\Users\ddale\AppData\Local\Continuum\Anaconda3\lib\site-packages\numpy\distutils\command\build_src.py", line 330, in build_extension_sources sources, py_files = self.filter_py_files(sources) File "C:\Users\ddale\AppData\Local\Continuum\Anaconda3\lib\site-packages\numpy\distutils\command\build_src.py", line 390, in filter_py_files return self.filter_files(sources, ['.py']) File "C:\Users\ddale\AppData\Local\Continuum\Anaconda3\lib\site-packages\numpy\distutils\command\build_src.py", line 399, in filter_files (base, ext) = os.path.splitext(source) File "C:\Users\ddale\AppData\Local\Continuum\Anaconda3\lib\ntpath.py", line 223, in splitext p = os.fspath(p) TypeError: expected str, bytes or os.PathLike object, not list


Tags: runinpybuildliblocallineusers