Пакет Python требует freeglut в качестве зависимости

#python #pip #package #freeglut

#python #pip #пакет #freeglut

Вопрос:

Я создаю пакет Python, и я хотел бы использовать freeglut. Есть ли какой-либо способ сделать так, чтобы при установке пакета он находил пакет freeglut для меня и устанавливал его? Я знаю, что если я просто установлю PyOpenGL из pip, я не смогу использовать freeglut, но если я использую пакет из https://www.lfd.uci.edu /~gohlke/pythonlibs/#pyopengl, это работает. Однако это только для Windows. Я также попытался добавить ссылку выше в качестве зависимости, загрузив ее на github, а затем добавив pyopengl @ git https://raw.githubusercontent.com/rayzchen/PyUnity/master/PyOpenGL-3.1.5-cp38-cp38-win32.whl в качестве зависимости, но я получаю ошибку TypeError: stat: path should be string, bytes, os.PathLike or integer, not NoneType . Я также пытался использовать dependency_links в программе установки, но безуспешно. Это мой setup.py:

 from setuptools import setup, find_packages
import os

pyopengl_link = "pyopengl @ git https://raw.githubusercontent.com/rayzchen/PyUnity/master/PyOpenGL-3.1.5-cp38-cp38-win32.whl"
pyopengl_accelerate_link = "pyopengl-accelerate @ git https://raw.githubusercontent.com/rayzchen/PyUnity/master/PyOpenGL_accelerate-3.1.5-cp38-cp38-win32.whl"
if os.name == "nt":
    links = [pyopengl_link, pyopengl_accelerate_link]
else:
    links = []

print(links)

with open("README.md", "r") as fh:
    long_description = fh.read()

setup(
    name = "pyunity",
    version = "0.0.1",
    author = "Ray Chen",
    author_email = "tankimarshal2@gmail.com",
    description = "A Python implementation of the Unity Engine",
    long_description = long_description,
    long_description_content_type = "text/markdown",
    url = "https://github/rayzchen/PyUnity",
    packages = find_packages(),
    classifiers = [
        "Programming Language :: Python :: 3.7",
        "License :: OSI Approved :: MIT License",
        "Operating System :: Microsoft :: Windows :: Windows 10",
    ],
    dependency_links = links,
    install_requires = [
        "glfw",
        "pygame",
        *links,
    ],
    python_requires = '>=3.7',
)
  

Это было просто для развлечения, поэтому, пожалуйста, не критикуйте меня за попытку реализовать Unity на Python.

Ответ №1:

Один из способов, который я нашел, заключался в том, чтобы поместить pyopengl @ https://github.com/rayzchen/pyunity/blob/master/PyOpenGL-3.1.5-cp38-cp38-win32.whl в качестве решения, а не pyopengl @ git https://github.com/rayzchen/pyunity/blob/master/PyOpenGL-3.1.5-cp38-cp38-win32.whl . Я думаю, что git будет клонировать репозиторий, а затем создавать пакет.