kivy / kivy-ios

Toolchain for compiling Python / Kivy / other libraries for iOS
https://kivy.org/docs/guide/packaging-ios.html
MIT License
759 stars 238 forks source link

Error when creating recipe for Psycopg2 #698

Open nkehoe opened 2 years ago

nkehoe commented 2 years ago

Versions

Describe the bug I tried to create a recipe for the Psycopg2 module following this question on Stack overflow: https://stackoverflow.com/questions/70587463/how-do-you-make-a-recipe-for-kivy-ios This is the code I wrote:

from kivy_ios.toolchain import PythonRecipe
class Psycopg2(PythonRecipe):
    version= "1"
    url= "https://github.com/psycopg/psycopg2/archive/refs/heads/master.zip"
    depends=["python"]

recipe= Psycopg2()

It's saved in /kivy_ios/recipies/psycopg2/ and named init.py.

I read that psycopg2 has a runtime dependency on the libpg module but I'm unsure what to do with that information.

To Reproduce python toolchain.py build psycopg2

Expected behavior build psycopg2 module to use with my Xcode project

Logs

[DEBUG   ] running install
[DEBUG   ] running build
[DEBUG   ] running build_py
[DEBUG   ] creating build
[DEBUG   ] creating build/lib.macosx-12.3-arm64-3.9
[DEBUG   ] creating build/lib.macosx-12.3-arm64-3.9/psycopg2
[DEBUG   ] copying lib/_json.py -> build/lib.macosx-12.3-arm64-3.9/psycopg2
[DEBUG   ] copying lib/extras.py -> build/lib.macosx-12.3-arm64-3.9/psycopg2
[DEBUG   ] copying lib/errorcodes.py -> build/lib.macosx-12.3-arm64-3.9/psycopg2
[DEBUG   ] copying lib/tz.py -> build/lib.macosx-12.3-arm64-3.9/psycopg2
[DEBUG   ] copying lib/_range.py -> build/lib.macosx-12.3-arm64-3.9/psycopg2
[DEBUG   ] copying lib/_ipaddress.py -> build/lib.macosx-12.3-arm64-3.9/psycopg2
[DEBUG   ] copying lib/__init__.py -> build/lib.macosx-12.3-arm64-3.9/psycopg2
[DEBUG   ] copying lib/extensions.py -> build/lib.macosx-12.3-arm64-3.9/psycopg2
[DEBUG   ] copying lib/errors.py -> build/lib.macosx-12.3-arm64-3.9/psycopg2
[DEBUG   ] copying lib/sql.py -> build/lib.macosx-12.3-arm64-3.9/psycopg2
[DEBUG   ] copying lib/pool.py -> build/lib.macosx-12.3-arm64-3.9/psycopg2
[DEBUG   ] running build_ext
[DEBUG   ] Traceback (most recent call last):
[DEBUG   ]   File "/Users/noelkehoe/kivy-ios/build/psycopg2/x86_64/psycopg2-master/setup.py", line 549, in <module>
[DEBUG   ]     setup(name="psycopg2",
[DEBUG   ]   File "/Users/noelkehoe/kivy-ios/dist/hostpython3/lib/python3.9/site-packages/setuptools/__init__.py", line 153, in setup
[DEBUG   ]     return distutils.core.setup(**attrs)
[DEBUG   ]   File "/Users/noelkehoe/kivy-ios/dist/hostpython3/lib/python3.9/distutils/core.py", line 148, in setup
[DEBUG   ]     dist.run_commands()
[DEBUG   ]   File "/Users/noelkehoe/kivy-ios/dist/hostpython3/lib/python3.9/distutils/dist.py", line 966, in run_commands
[DEBUG   ]     self.run_command(cmd)
[DEBUG   ]   File "/Users/noelkehoe/kivy-ios/dist/hostpython3/lib/python3.9/distutils/dist.py", line 985, in run_command
[DEBUG   ]     cmd_obj.run()
[DEBUG   ]   File "/Users/noelkehoe/kivy-ios/dist/hostpython3/lib/python3.9/site-packages/setuptools/command/install.py", line 61, in run
[DEBUG   ]     return orig.install.run(self)
[DEBUG   ]   File "/Users/noelkehoe/kivy-ios/dist/hostpython3/lib/python3.9/distutils/command/install.py", line 546, in run
[DEBUG   ]     self.run_command('build')
[DEBUG   ]   File "/Users/noelkehoe/kivy-ios/dist/hostpython3/lib/python3.9/distutils/cmd.py", line 313, in run_command
[DEBUG   ]     self.distribution.run_command(command)
[DEBUG   ]   File "/Users/noelkehoe/kivy-ios/dist/hostpython3/lib/python3.9/distutils/dist.py", line 985, in run_command
[DEBUG   ]     cmd_obj.run()
[DEBUG   ]   File "/Users/noelkehoe/kivy-ios/dist/hostpython3/lib/python3.9/distutils/command/build.py", line 135, in run
[DEBUG   ]     self.run_command(cmd_name)
[DEBUG   ]   File "/Users/noelkehoe/kivy-ios/dist/hostpython3/lib/python3.9/distutils/cmd.py", line 313, in run_command
[DEBUG   ]     self.distribution.run_command(command)
[DEBUG   ]   File "/Users/noelkehoe/kivy-ios/dist/hostpython3/lib/python3.9/distutils/dist.py", line 984, in run_command
[DEBUG   ]     cmd_obj.ensure_finalized()
[DEBUG   ]   File "/Users/noelkehoe/kivy-ios/dist/hostpython3/lib/python3.9/distutils/cmd.py", line 107, in ensure_finalized
[DEBUG   ]     self.finalize_options()
[DEBUG   ]   File "/Users/noelkehoe/kivy-ios/build/psycopg2/x86_64/psycopg2-master/setup.py", line 364, in finalize_options
[DEBUG   ]     pg_config_helper = PostgresConfig(self)
[DEBUG   ]   File "/Users/noelkehoe/kivy-ios/build/psycopg2/x86_64/psycopg2-master/setup.py", line 85, in __init__
[DEBUG   ]     self.pg_config_exe = self.autodetect_pg_config_path()
[DEBUG   ]   File "/Users/noelkehoe/kivy-ios/build/psycopg2/x86_64/psycopg2-master/setup.py", line 141, in autodetect_pg_config_path
[DEBUG   ]     return self.find_on_path('pg_config')
[DEBUG   ]   File "/Users/noelkehoe/kivy-ios/build/psycopg2/x86_64/psycopg2-master/setup.py", line 129, in find_on_path
[DEBUG   ]     path_directories = os.environ['PATH'].split(os.pathsep)
[DEBUG   ]   File "/Users/noelkehoe/kivy-ios/dist/hostpython3/lib/python3.9/os.py", line 679, in __getitem__
[DEBUG   ]     raise KeyError(key) from None
[DEBUG   ] KeyError: 'PATH'
Exception in thread background thread for pid 34534:
Traceback (most recent call last):
  File "/Users/noelkehoe/opt/anaconda3/lib/python3.9/threading.py", line 973, in _bootstrap_inner
    self.run()
  File "/Users/noelkehoe/opt/anaconda3/lib/python3.9/threading.py", line 910, in run
    self._target(*self._args, **self._kwargs)
  File "/Users/noelkehoe/venv/lib/python3.9/site-packages/sh.py", line 1683, in wrap
    fn(*rgs, **kwargs)
  File "/Users/noelkehoe/venv/lib/python3.9/site-packages/sh.py", line 2662, in background_thread
    handle_exit_code(exit_code)
  File "/Users/noelkehoe/venv/lib/python3.9/site-packages/sh.py", line 2349, in fn
    return self.command.handle_command_exit_code(exit_code)
  File "/Users/noelkehoe/venv/lib/python3.9/site-packages/sh.py", line 905, in handle_command_exit_code
    raise exc
sh.ErrorReturnCode_1: 

  RAN: /Users/noelkehoe/kivy-ios/dist/hostpython3/bin/python setup.py install -O2 --root /Users/noelkehoe/kivy-ios/dist/root/python3 --prefix ''

  STDOUT:
running install
running build
running build_py
creating build
creating build/lib.macosx-12.3-arm64-3.9
creating build/lib.macosx-12.3-arm64-3.9/psycopg2
copying lib/_json.py -> build/lib.macosx-12.3-arm64-3.9/psycopg2
copying lib/extras.py -> build/lib.macosx-12.3-arm64-3.9/psycopg2
copying lib/errorcodes.py -> build/lib.macosx-12.3-arm64-3.9/psycopg2
copying lib/tz.py -> build/lib.macosx-12.3-arm64-3.9/psycopg2
copying lib/_range.py -> build/lib.macosx-12.3-arm64-3.9/psycopg2
copying lib/_ipaddress.py -> build/lib.macosx-12.3-arm64-3.9/psycopg2
copying lib/__init__.py -> build/lib.macosx-12.3-arm64-3.9/psycopg2
copying lib/extensions.py -> build/lib.macosx-12.3-arm64-3.9/psycopg2
copying lib/errors.py -> build/lib.macosx-12.3-arm64-3.9/psy... (2837 more, please see e.stdout)

  STDERR:

Traceback (most recent call last):
  File "/Users/noelkehoe/kivy-ios/toolchain.py", line 3, in <module>
    main()
  File "/Users/noelkehoe/kivy-ios/kivy_ios/toolchain.py", line 1555, in main
    ToolchainCL()
  File "/Users/noelkehoe/kivy-ios/kivy_ios/toolchain.py", line 1299, in __init__
    getattr(self, args.command)()
  File "/Users/noelkehoe/kivy-ios/kivy_ios/toolchain.py", line 1368, in build
    build_recipes(args.recipe, ctx)
  File "/Users/noelkehoe/kivy-ios/kivy_ios/toolchain.py", line 1142, in build_recipes
    recipe.execute()
  File "/Users/noelkehoe/kivy-ios/kivy_ios/toolchain.py", line 704, in execute
    self.build_all()
  File "/Users/noelkehoe/kivy-ios/kivy_ios/toolchain.py", line 74, in _cache_execution
    f(self, *args, **kwargs)
  File "/Users/noelkehoe/kivy-ios/kivy_ios/toolchain.py", line 830, in build_all
    self.install()
  File "/Users/noelkehoe/kivy-ios/kivy_ios/toolchain.py", line 74, in _cache_execution
    f(self, *args, **kwargs)
  File "/Users/noelkehoe/kivy-ios/kivy_ios/toolchain.py", line 1010, in install
    self.install_python_package()
  File "/Users/noelkehoe/kivy-ios/kivy_ios/toolchain.py", line 1030, in install_python_package
    shprint(
  File "/Users/noelkehoe/kivy-ios/kivy_ios/toolchain.py", line 56, in shprint
    for line in cmd:
  File "/Users/noelkehoe/venv/lib/python3.9/site-packages/sh.py", line 953, in next
    self.wait()
  File "/Users/noelkehoe/venv/lib/python3.9/site-packages/sh.py", line 879, in wait
    self.handle_command_exit_code(exit_code)
  File "/Users/noelkehoe/venv/lib/python3.9/site-packages/sh.py", line 905, in handle_command_exit_code
    raise exc
sh.ErrorReturnCode_1: 

  RAN: /Users/noelkehoe/kivy-ios/dist/hostpython3/bin/python setup.py install -O2 --root /Users/noelkehoe/kivy-ios/dist/root/python3 --prefix ''

  STDOUT:
running install
running build
running build_py
creating build
creating build/lib.macosx-12.3-arm64-3.9
creating build/lib.macosx-12.3-arm64-3.9/psycopg2
copying lib/_json.py -> build/lib.macosx-12.3-arm64-3.9/psycopg2
copying lib/extras.py -> build/lib.macosx-12.3-arm64-3.9/psycopg2
copying lib/errorcodes.py -> build/lib.macosx-12.3-arm64-3.9/psycopg2
copying lib/tz.py -> build/lib.macosx-12.3-arm64-3.9/psycopg2
copying lib/_range.py -> build/lib.macosx-12.3-arm64-3.9/psycopg2
copying lib/_ipaddress.py -> build/lib.macosx-12.3-arm64-3.9/psycopg2
copying lib/__init__.py -> build/lib.macosx-12.3-arm64-3.9/psycopg2
copying lib/extensions.py -> build/lib.macosx-12.3-arm64-3.9/psycopg2
copying lib/errors.py -> build/lib.macosx-12.3-arm64-3.9/psy... (2837 more, please see e.stdout)

  STDERR:

Screenshots

Additional context Add any other context about the problem here.