Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

Install error in specific environment (AttributeError: install_layout)

未关闭
#296 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

评估

难度
4/5
预计耗时
3-5 天
新手友好度
20/100
Issue 类型
缺陷
描述清晰度
需要澄清
活跃度
停滞
技术栈
python
领域
networking

调研方向

Start with the ws4py setup.py referenced in the traceback and compare its installation path with the setuptools and wheel versions used in the Python 3.8 tox environment. Reproduce the failure by building the wheel in that environment. Done means the ws4py wheel installs successfully without the AttributeError: install_layout failure.

由索引模型根据 Issue 内容生成。

描述

Hi folks, I've a weird case where I'm not sure why that is.

I'm using pylxd which uses ws4py. All works fine in my local environment, but fails to install in a Jenkins run.

Here's what it complains about:

Building wheels for collected packages: juju, ws4py
  Building wheel for juju (pyproject.toml): started
  Building wheel for juju (pyproject.toml): finished with status 'done'
  Created wheel for juju: filename=juju-3.5.2.0-py3-none-any.whl size=283168 sha256=f19ece3d052a8acc76b27a8a0f0588b5ef15677554269325f877a053bf65d7e6
  Stored in directory: /home/jenkins/.cache/pip/wheels/74/32/a3/6fab14d05865e07fb4e28c16a9ff3abae6f17e145b87ce14a3
  Building wheel for ws4py (setup.py): started
  Building wheel for ws4py (setup.py): finished with status 'error'
  Running setup.py clean for ws4py
Successfully built juju
Failed to build ws4py
�[31m  error: subprocess-exited-with-error
  
  × python setup.py bdist_wheel did not run successfully.
  │ exit code: 1
  ╰─> [88 lines of output]
      running bdist_wheel
      running build
      running build_py
      creating build
      creating build/lib
      creating build/lib/ws4py
      copying ws4py/compat.py -> build/lib/ws4py
      copying ws4py/websocket.py -> build/lib/ws4py
      copying ws4py/async_websocket.py -> build/lib/ws4py
      copying ws4py/utf8validator.py -> build/lib/ws4py
      copying ws4py/messaging.py -> build/lib/ws4py
      copying ws4py/manager.py -> build/lib/ws4py
      copying ws4py/streaming.py -> build/lib/ws4py
      copying ws4py/framing.py -> build/lib/ws4py
      copying ws4py/__init__.py -> build/lib/ws4py
      copying ws4py/exc.py -> build/lib/ws4py
      creating build/lib/ws4py/client
      copying ws4py/client/geventclient.py -> build/lib/ws4py/client
      copying ws4py/client/threadedclient.py -> build/lib/ws4py/client
      copying ws4py/client/tornadoclient.py -> build/lib/ws4py/client
      copying ws4py/client/__init__.py -> build/lib/ws4py/client
      creating build/lib/ws4py/server
      copying ws4py/server/geventserver.py -> build/lib/ws4py/server
      copying ws4py/server/wsgirefserver.py -> build/lib/ws4py/server
      copying ws4py/server/cherrypyserver.py -> build/lib/ws4py/server
      copying ws4py/server/tulipserver.py -> build/lib/ws4py/server
      copying ws4py/server/wsgiutils.py -> build/lib/ws4py/server
      copying ws4py/server/__init__.py -> build/lib/ws4py/server
      /home/jenkins/go/src/github.com/juju/python-libjuju/.tox/py38/lib/python3.8/site-packages/setuptools/_distutils/cmd.py:66: SetuptoolsDeprecationWarning: setup.py install is deprecated.
      !!
      
              ********************************************************************************
              Please avoid running ``setup.py`` directly.
              Instead, use pypa/build, pypa/installer or other
              standards-based tools.
      
              See https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html for details.
              ********************************************************************************
      
      !!
        self.initialize_options()
      installing to build/bdist.linux-x86_64/wheel
      running install
      running install_lib
      Traceback (most recent call last):
        File "<string>", line 2, in <module>
        File "<pip-setuptools-caller>", line 34, in <module>
        File "/tmp/pip-install-xxao179z/ws4py_32bb9ce314c5496fa5cc0637a096257a/setup.py", line 40, in <module>
          setup(name = "ws4py",
        File "/home/jenkins/go/src/github.com/juju/python-libjuju/.tox/py38/lib/python3.8/site-packages/setuptools/__init__.py", line 107, in setup
          return distutils.core.setup(**attrs)
        File "/home/jenkins/go/src/github.com/juju/python-libjuju/.tox/py38/lib/python3.8/site-packages/setuptools/_distutils/core.py", line 185, in setup
          return run_commands(dist)
        File "/home/jenkins/go/src/github.com/juju/python-libjuju/.tox/py38/lib/python3.8/site-packages/setuptools/_distutils/core.py", line 201, in run_commands
          dist.run_commands()
        File "/home/jenkins/go/src/github.com/juju/python-libjuju/.tox/py38/lib/python3.8/site-packages/setuptools/_distutils/dist.py", line 969, in run_commands
          self.run_command(cmd)
        File "/home/jenkins/go/src/github.com/juju/python-libjuju/.tox/py38/lib/python3.8/site-packages/setuptools/dist.py", line 1233, in run_command
          super().run_command(command)
        File "/home/jenkins/go/src/github.com/juju/python-libjuju/.tox/py38/lib/python3.8/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
          cmd_obj.run()
        File "/home/jenkins/go/src/github.com/juju/python-libjuju/.tox/py38/lib/python3.8/site-packages/wheel/bdist_wheel.py", line 403, in run
          self.run_command("install")
        File "/home/jenkins/go/src/github.com/juju/python-libjuju/.tox/py38/lib/python3.8/site-packages/setuptools/_distutils/cmd.py", line 318, in run_command
          self.distribution.run_command(command)
        File "/home/jenkins/go/src/github.com/juju/python-libjuju/.tox/py38/lib/python3.8/site-packages/setuptools/dist.py", line 1233, in run_command
          super().run_command(command)
        File "/home/jenkins/go/src/github.com/juju/python-libjuju/.tox/py38/lib/python3.8/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
          cmd_obj.run()
        File "/home/jenkins/go/src/github.com/juju/python-libjuju/.tox/py38/lib/python3.8/site-packages/setuptools/command/install.py", line 78, in run
          return orig.install.run(self)
        File "/home/jenkins/go/src/github.com/juju/python-libjuju/.tox/py38/lib/python3.8/site-packages/setuptools/_distutils/command/install.py", line 708, in run
          self.run_command(cmd_name)
        File "/home/jenkins/go/src/github.com/juju/python-libjuju/.tox/py38/lib/python3.8/site-packages/setuptools/_distutils/cmd.py", line 318, in run_command
          self.distribution.run_command(command)
        File "/home/jenkins/go/src/github.com/juju/python-libjuju/.tox/py38/lib/python3.8/site-packages/setuptools/dist.py", line 1233, in run_command
          super().run_command(command)
        File "/home/jenkins/go/src/github.com/juju/python-libjuju/.tox/py38/lib/python3.8/site-packages/setuptools/_distutils/dist.py", line 987, in run_command
          cmd_obj.ensure_finalized()
        File "/home/jenkins/go/src/github.com/juju/python-libjuju/.tox/py38/lib/python3.8/site-packages/setuptools/_distutils/cmd.py", line 111, in ensure_finalized
          self.finalize_options()
        File "/home/jenkins/go/src/github.com/juju/python-libjuju/.tox/py38/lib/python3.8/site-packages/setuptools/command/install_lib.py", line 17, in finalize_options
          self.set_undefined_options('install',('install_layout','install_layout'))
        File "/home/jenkins/go/src/github.com/juju/python-libjuju/.tox/py38/lib/python3.8/site-packages/setuptools/_distutils/cmd.py", line 296, in set_undefined_options
          setattr(self, dst_option, getattr(src_cmd_obj, src_option))
        File "/home/jenkins/go/src/github.com/juju/python-libjuju/.tox/py38/lib/python3.8/site-packages/setuptools/_distutils/cmd.py", line 107, in __getattr__
          raise AttributeError(attr)
      AttributeError: install_layout
      [end of output]
主要语言
Python
星标
1.1k
派生
285
PR 合并指标
30 天内没有已合并 PR

贡献指南

这个仓库没有索引到贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

Lawouach/WebSocket-for-Python 的其他 Issue

查看 Lawouach/WebSocket-for-Python 的全部 Issue

相似的 Issue

更多 Python Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。