cztomczak / cefpython

Python bindings for the Chromium Embedded Framework (CEF)
Other
3.08k stars 473 forks source link

New v66.1 release only for Windows? #609

Open juanjavatus opened 3 years ago

juanjavatus commented 3 years ago

Hi, I've tried to install new release as pip install cefpython3==66.1 and returns the following error: ERROR: Could not find a version that satisfies the requirement cefpython3==66.1 ERROR: No matching distribution found for cefpython3==66.1 When I install pip install cefpython3 I get v66.0 which only supports python 3.7. I'm working with python v3.9 in Ubuntu 20. Thanks

cztomczak commented 3 years ago

Yes, Windows only.

juanjavatus commented 3 years ago

Thanks

leovan commented 3 years ago

@cztomczak Hi, Czarek, is there any plan to support python 3.8 and 3.9 for macOS?

SCRIER-org commented 3 years ago

File "/opt/anaconda3/lib/python3.8/site-packages/cefpython3/init.py", line 65, in from . import cefpython_py37 as cefpython ImportError: libpython3.7m.so.1.0: cannot open shared object file: No such file or directory

Lubuntu 20.04 / python3.8 does not seem to support this package; can't find version 66.1 yet. Thanks!

cztomczak commented 3 years ago

You can try building on macOS. There are quick build instructions in the Build-instructions document. Users reported it works fine on Linux.

ramcdougal commented 3 years ago

I know it takes time and effort to do this, but I second the votes for pip-installable macOS and Linux packages; without that, we can't distribute packages to third-parties that depend on cefpython3.

BarnabasSzabolcs commented 3 years ago

How long is usually the build from source on Mac? I have tried to build on macos 10.13.6 and the process hung here:

(venv) MacBook-Pro-2:build Barnabas$ python ../tools/automate.py --build-cef --ninja-jobs 4
[automate.py] Running 'git clone -b 2987 https://bitbucket.org/chromiumembedded/cef.git cef' in '/Users/Barnabas/PycharmProjects/cefpython/build'...
Cloning into 'cef'...
Receiving objects: 100% (67965/67965), 23.24 MiB | 1.12 MiB/s, done.
Resolving deltas: 100% (57553/57553), done.
[automate.py] Running 'git checkout f035232c082f837d2b85bd7821a93a54fc742775' in '/Users/Barnabas/PycharmProjects/cefpython/build/cef'...
Note: switching to 'f035232c082f837d2b85bd7821a93a54fc742775'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:

  git switch -c <new-branch-name>

Or undo this operation with:

  git switch -

Turn off this advice by setting config variable advice.detachedHead to false

HEAD is now at f035232c0 Fix print to PDF (issue #2129)
[automate.py] Updating CEF patches with CEF Python patches
[automate.py] Copying issue125.patch to /Users/Barnabas/PycharmProjects/cefpython/build/cef/patch/patches
[automate.py] Copying issue218_linux.patch to /Users/Barnabas/PycharmProjects/cefpython/build/cef/patch/patches
[automate.py] Copying issue231.patch to /Users/Barnabas/PycharmProjects/cefpython/build/cef/patch/patches
[automate.py] Copying issue251.patch to /Users/Barnabas/PycharmProjects/cefpython/build/cef/patch/patches
[automate.py] Overwriting /Users/Barnabas/PycharmProjects/cefpython/build/cef/patch/patch.cfg
[automate.py] Running 'python /Users/Barnabas/PycharmProjects/cefpython/tools/automate-git.py --x64-build --download-dir=/Users/Barnabas/PycharmProjects/cefpython/build --branch=2987 --no-debug-build --verbose-build --force-build --no-cef-update --no-distrib-archive' in '/Users/Barnabas/PycharmProjects/cefpython/build'...
--> Download Directory: /Users/Barnabas/PycharmProjects/cefpython/build
--> Depot Tools Directory: /Users/Barnabas/PycharmProjects/cefpython/build/depot_tools
-------- Running "git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git /Users/Barnabas/PycharmProjects/cefpython/build/depot_tools" in "/Users/Barnabas/PycharmProjects/cefpython/build"...
Cloning into '/Users/Barnabas/PycharmProjects/cefpython/build/depot_tools'...
remote: Sending approximately 51.79 MiB ...
remote: Total 43427 (delta 27099), reused 43427 (delta 27099)
Receiving objects: 100% (43427/43427), 51.79 MiB | 2.54 MiB/s, done.
Resolving deltas: 100% (27099/27099), done.
--> Updating depot_tools
-------- Running "update_depot_tools" in "/Users/Barnabas/PycharmProjects/cefpython/build/depot_tools"...
--> CEF Branch: 2987
--> CEF URL: https://bitbucket.org/chromiumembedded/cef.git
--> CEF Source Directory: /Users/Barnabas/PycharmProjects/cefpython/build/cef
--> CEF Output Directory: /Users/Barnabas/PycharmProjects/cefpython/build/out_2987
--> Creating directory /Users/Barnabas/PycharmProjects/cefpython/build/chromium
--> Writing file: /Users/Barnabas/PycharmProjects/cefpython/build/chromium/.gclient
-------- Running "gclient sync --nohooks --with_branch_heads --jobs 16" in "/Users/Barnabas/PycharmProjects/cefpython/build/chromium"...
WARNING: Your metrics.cfg file was invalid or nonexistent. A new one will be created.
BarnabasSzabolcs commented 3 years ago

Btw If one needs just a window that supports a browser widget and javascript-python two-way communication, an alternative that works on Windows, Linux and Mac with the latest python version is https://github.com/r0x0r/pywebview/

The reason I tried to experiment with cefpython is that with pywebview the python debugger can slow down sometimes but other than this issue I had no problem using it.

cztomczak commented 3 years ago

See https://github.com/cztomczak/cefpython/blob/master/docs/Build-instructions.md#building-old-unsupported-version-of-chromium

TarunJohar commented 3 years ago

Hi @cztomczak,

Can you share cefpython 66.1 for Linux and Mac ?

The posted files only Support Windows wheel on PyPi. It seems that the package was updated to work on 3.8 and 3.9 but somehow binaries for Linux an Mac have not been published at https://pypi.org/project/cefpython3/#files.

ramcdougal commented 3 years ago

@BarnabasSzabolcs Is there a way to put pywebview inside a wx frame?

TarunJohar commented 3 years ago

Hi @cztomczak,

Can you share cefpython 66.1 for Linux and Mac ?

The posted files only Support Windows wheel on PyPi. It seems that the package was updated to work on 3.8 and 3.9 but somehow binaries for Linux an Mac have not been published at https://pypi.org/project/cefpython3/#files.

Hi @cztomczak ,

Is this somehting you can look into?

cztomczak commented 3 years ago

I do not have such binaries.

BarnabasSzabolcs commented 3 years ago

@BarnabasSzabolcs Is there a way to put pywebview inside a wx frame?

Only if wxwidgets can integrate external native gui stuff. I have looked into pywebview's code and it primarily tries to use gtk, cocoa or winforms. I think you'll need to manually code the integration though. I think the whole logic of pywebview is created so that it takes care of creating the window for you, natively.

I think WxWidgets and webview solutions have opposing philosophies. WxWidges aims to give a platform-native look and feel (like VLC and BitTorrent) whereas webview's are to give you the same stylish look and feel across platforms (like VisualStudioCode or Ableton Live).

What is your use case for putting a webview into a wx frame?

ramcdougal commented 3 years ago

@BarnabasSzabolcs I'm trying to replace an older UI of an existing program. The core is in C++, but many people now use it as a Python library. So I'm looking for (1) html-based layout with web-python interactivity, (2) system-appropriate pull down menus, (3) something where I can either embed a Python terminal OR runs the interface in a separate process so I can use the system terminal, (4) pip installable on all platforms, and (5) unencumbered by license restrictions (i.e. we're BSD so can't be GPL).

Point (3) is critical but probably something that can always be made to work, so pywebview would probably work for me if I could specify menus that did the right thing on a Mac, but I didn't see anything about that in their docs. Embedding inside wx would allow using wx for menus, but that's the only reason I'd want that.

BarnabasSzabolcs commented 3 years ago

@ramcdougal Oh, yes, now I get you completely! I agree, the menus are missing dearly. I hope to try and look into that soon, as I also want native menus for Mac. For Windows and some Linuxes the html can generate nice menus, but the Mac is not really elegant if the menu is not native.

OutfoxedAdmin commented 3 years ago

I do not have such binaries.

Just wondering if I can look forward for this anytime, I dunno, this year. Not necessarily from you of course but I can see the from the release history that its rather erratic. I miss my walrus operator

kletel commented 3 years ago

Hello, I am building the mac binaries. It still working on src. I will release them soon, let me know if you want the built libraries.

OutfoxedAdmin commented 3 years ago

I'm still getting my bearings with this tool — will the final product you're working on be installable via pip? Also, thank you

kletel commented 3 years ago

I will publish them on pypi and it will be installable via pip.

kletel commented 3 years ago

I succedeed to compile the version 66.1 with python3.9 on mac os X, please find the link to download the installer file https://devsd.info/python/cefpython3-66.1-py2.py3-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl pip install cefpython3-66.1-py2.py3-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl I will release it on pypi later ( friday or this week end )

kletel commented 3 years ago

I'm still getting my bearings with this tool — will the final product you're working on be installable via pip? Also, thank you

Hi, did you test the version 66.1 on mac ?

major-mayer commented 3 years ago

I just tried building CEFPython on my own Linux machine, unfortunately the install process fails for me:

Copying cefpython3.egg-info to /home/laurenz/.virtualenvs/ngsp_mergetool/lib/python3.9/site-packages/cefpython3-66.1-py3.9.egg-info
running install_scripts
[setup.py] Execute post_install_hook
[setup.py] Overload sys.path to facilitate finding correct directory for the installed package
Traceback (most recent call last):
  File "/home/laurenz/ModuleWorks/checkouts/ngsp-mergetool/cefpython/build/cefpython3_66.1_linux64/setup.py", line 259, in <module>
    main()
  File "/home/laurenz/ModuleWorks/checkouts/ngsp-mergetool/cefpython/build/cefpython3_66.1_linux64/setup.py", line 103, in main
    setup(
  File "/home/laurenz/.virtualenvs/ngsp_mergetool/lib/python3.9/site-packages/setuptools/__init__.py", line 153, in setup
    return distutils.core.setup(**attrs)
  File "/usr/lib/python3.9/distutils/core.py", line 148, in setup
    dist.run_commands()
  File "/usr/lib/python3.9/distutils/dist.py", line 966, in run_commands
    self.run_command(cmd)
  File "/usr/lib/python3.9/distutils/dist.py", line 985, in run_command
    cmd_obj.run()
  File "/home/laurenz/ModuleWorks/checkouts/ngsp-mergetool/cefpython/build/cefpython3_66.1_linux64/setup.py", line 67, in run
    post_install_hook()
  File "/home/laurenz/ModuleWorks/checkouts/ngsp-mergetool/cefpython/build/cefpython3_66.1_linux64/setup.py", line 226, in post_install_hook
    import cefpython3
  File "/home/laurenz/.virtualenvs/ngsp_mergetool/lib/python3.9/site-packages/cefpython3/__init__.py", line 72, in <module>
    from . import cefpython_py39 as cefpython
ImportError: /home/laurenz/.virtualenvs/ngsp_mergetool/lib/python3.9/site-packages/cefpython3/cefpython_py39.so: undefined symbol: _Z15CefOverridePath14cef_path_key_tRK13CefStringBaseI20CefStringTraitsUTF16E
[build.py] ERROR while installing package

The rest of the build process went through after I added the compiler flag -Wno-deprecated-declarations. Any ideas what is going wrong here? I am using the CEF build from Spotify ("cef_binary_3.3359.1774.gd49d25f_linux64") .

I just found this pastebin where someone seems to be having the same problem, but with a much older version.

cztomczak commented 3 years ago

@major-mayer You should follow official build instructions. On Linux we patch CEF. You can download patched binaries from v66-upstream release on GitHub.

major-mayer commented 3 years ago

Ah okay thanks for the hint. Actually i read the build instructions and followed this section: https://github.com/cztomczak/cefpython/blob/master/docs/Build-instructions.md#build-using-cef-binaries-from-spotify-automated-builds To me it seemed like the automate.py script would automagically patch the CEF build that i downloaded from the Spotify website, but apparently it doesn't (or I didn't get it to work).

I thought that you cannot use the prebuild CEF binaries, because for the version 66.1 they were only available for Windows. But that's where i was confused by the difference of cefpython and CEF itself.
Downloading the v66-upstream binaries did the trick and i was able to build CEFPython for Python 3.9.

I've uploaded my cefpython wheel package if anybody needs it for Linux (Python 3.9 only obviously). Download it here

kletel commented 3 years ago

cool now we have windows, mac os x and linux binaries versions. https://devsd.info/python/cefpython3-66.1-py2.py3-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl Thank you cztomczak for all the documentation about how to build the source code.

OutfoxedAdmin commented 3 years ago

This is fantastic news! There's a fair few improvements in between 3.7 and 3.9, but 3.10 isn't even out of beta yet. Thanks for your efforts everyone!

On Mon, Jul 26, 2021 at 2:45 PM kletel @.***> wrote:

cool now we have windows, mac os x and linux binaries versions.

https://devsd.info/python/cefpython3-66.1-py2.py3-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl Thank you cztomczak for all the documentation about how to build the source code.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/cztomczak/cefpython/issues/609#issuecomment-887048614, or unsubscribe https://github.com/notifications/unsubscribe-auth/ALBFSKZRTPQ7KL5BG6Q7ZWLTZXJO3ANCNFSM4YLF53OA .

benh57 commented 3 years ago

This is great that the community has built mac binaries. But, is another step needed to get those into the public pip repository? 66.0 binaries are available for Mac, but not 66.1 -- Does this project need a maintainer for the mac builds?

kletel commented 3 years ago

I am creating a pypi account to do it

shaunnarayan commented 3 years ago

@kletel Would it be easy for you to make a wheel for python 3.8 on macos (some of my deps aren't 3.9 compatible)? I can do if it's a pain. Thanks for putting up the 3.9 version 👍

kletel commented 3 years ago

@shaunnarayan which version of python 3.8 please ?

shaunnarayan commented 3 years ago

@kletel 3.8.11 please, thanks in advance!

kletel commented 3 years ago

There is no 3.8.11 python installer for mac https://www.python.org/downloads/macos/ 3.8.10 is ok ?

ramcdougal commented 3 years ago

Huge fan of 3.8 support. At least in my field, a lot of people use anaconda, and if you use it right after installing, you'll have 3.8.

Thanks to all who are making this package work across platforms and Python versions!

shaunnarayan commented 3 years ago

@kletel Yes 3.8.10 is great thanks 👍

cztomczak commented 3 years ago

@kletel Can you please add to your project description that these are not official binaries? That they are externally maintained by you.

kletel commented 3 years ago

Hey @cztomczak Sure I will change the metadata, thank you for all the great work you have done

cztomczak commented 3 years ago

@kletel Ideally I would prefer if you named the project on pypi something like "cefpython3-sebkletel" to avoid confusion. Not sure if you can do that after the fact.

cztomczak commented 3 years ago

Or "cefpython3-unofficial".

kletel commented 3 years ago

Yes I can do it I will remove this release and do the package again from my github, thanks for the idea

cztomczak commented 3 years ago

Thank you :)

kletel commented 3 years ago

The built version 66.1 for python-3.9.6 on pypi : pip install cefpython3-for-python-3.9.6-unofficial

kletel commented 3 years ago

@OutfoxedAdmin it's done : pip install cefpython3-for-python-3.9.6-unofficial

kletel commented 3 years ago

@shaunnarayan The built version 66.1 for python-3.8.10 : pip install cefpython3-for-python-3.8.10-unofficial==66.1

shaunnarayan commented 3 years ago

@shaunnarayan The built version 66.1 for python-3.8.10 : pip install cefpython3-for-python-3.8.10-unofficial==66.1

Thank you so much @kletel really appreciate it 🎉

kletel commented 2 years ago

Hi,

I created a new unofficial version for python 3.10.2 for mac os : https://pypi.org/project/cefpython3-v66.1-for-python-3.10.2-unofficial/66.1/ pip install cefpython3-v66.1-for-python-3.10.2-unofficial==66.1

elibroftw commented 2 years ago

@kletel why not make a PR?

kletel commented 2 years ago

@elibroftw I don't know if cztomczak will accept the PR

non-adj commented 1 year ago

@shaunnarayan The built version 66.1 for python-3.8.10 : pip install cefpython3-for-python-3.8.10-unofficial==66.1

Thank you so much @kletel really appreciate it 🎉

Hey Shaun and Sarah Narayan, since you've just taken people's money and run as of today, I thought I'd ask here if you could refund Receipt #1774-7397

I have to ask here because you've deleted your domain, and the hello@cyte.io link under the receipt. You've also made all social media private, but this does not limit your responsibility. It feels as though you are under the impression you can now take that money and act like nothing happened. You actually are legally required to refund that money.

I am coming here to remind you that you have a legal requirement to refund your customers, starting with my order.

I had to come here because otherwise, you've cut off all communication to the people who have paid for your services.

Your current behavior is frankly criminal and you need to reverse course to avoid legal trouble. Process refunds rather than go into a cowardice, hiding mode.

Thanks!