New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Build pre-compiled libs for win64 #42

Closed
rfk opened this Issue Jun 16, 2014 · 33 comments

Comments

Projects
None yet
@rfk
Copy link
Owner

rfk commented Jun 16, 2014

Similar to the win32 binaries, we should ship a wheel for the win_amd64 platform. Once we get the win32 build process fixed this might be a simple matter of re-compiling for that platform. Or it might be a good deal more complicated...

@schoolsplay

This comment has been minimized.

Copy link

schoolsplay commented Dec 4, 2014

Any news about a 64 bit version ?
Or are there perhaps instructions for compiling pyenchant ?

@D8AM1N3R

This comment has been minimized.

Copy link

D8AM1N3R commented Feb 3, 2015

Any update on the 64 wheels? We have a system that we upgraded to 64-bit and were using pyenchant as part of our code--used the ANY wheel, the Gzipped Tarball, none of them worked and we keep getting this error:

ImportError: The 'enchant' C library was not found. Please install it via your OS package manager, or use a pre-built binary wheel from PyPI.

@tmundt

This comment has been minimized.

Copy link

tmundt commented Apr 26, 2015

Also trying to use PyDev on Eclipse with 64 bit architecture. Will there be a 64 bit wheel soon?

@rfk

This comment has been minimized.

Copy link
Owner

rfk commented Apr 26, 2015

Honestly, I just have not been able to get the thing to build successfully. I will continue trying to poke at it as I find the time but I've no idea how long it might take me to crack the build issue as a spare-time project.

Anyone with an interest and experience working with glib on windows, the current build tooling is at https://github.com/rfk/pyenchant/tree/master/tools/pyenchant-bdist-win32-sources and any suggestions would be appreciated.

@matysek

This comment has been minimized.

Copy link

matysek commented Aug 13, 2015

I also would love to see this happen.

@bonsonsm

This comment has been minimized.

Copy link

bonsonsm commented Sep 6, 2015

I would love to see this happen too..!

@matysek

This comment has been minimized.

Copy link

matysek commented Oct 13, 2015

You could try Appveyor service for building PyEnchant wheels: https://python-packaging-user-guide.readthedocs.org/en/latest/appveyor/

@ArminMne

This comment has been minimized.

Copy link

ArminMne commented Feb 23, 2016

Anything new until now? I have the same issue :(

@skjerns

This comment has been minimized.

Copy link

skjerns commented Mar 2, 2016

still nothing?

@schoolsplay

This comment has been minimized.

Copy link

schoolsplay commented Mar 2, 2016

Project dead ?

On March 2, 2016 2:00:58 PM GMT+01:00, skjerns notifications@github.com wrote:

still nothing?


Reply to this email directly or view it on GitHub:
#42 (comment)

Regards,
Stas Zytkiewicz

@rohannaidu

This comment has been minimized.

Copy link

rohannaidu commented Apr 2, 2016

What's the latest on this?

@ldevyataykina

This comment has been minimized.

Copy link

ldevyataykina commented Apr 28, 2016

Are there some way to solve this problem ?

@fisfog

This comment has been minimized.

Copy link

fisfog commented Apr 29, 2016

I got the same problem with 64bit python, so how to fix this?

@schoolsplay

This comment has been minimized.

Copy link

schoolsplay commented Apr 29, 2016

On 29-04-16 10:29, fisfog wrote:

I got the same problem with 64bit python, so how to fix this?

I'm afraid this project is dead.
No reactions from the developers, no news, nothing.


You are receiving this because you commented.
Reply to this email directly or view it on GitHub
#42 (comment)

Regards,
Stas Zytkiewicz

@rfk

This comment has been minimized.

Copy link
Owner

rfk commented Apr 29, 2016

I'm sorry to say, my comment from #42 (comment) still applies - I don't have much time to hack on the project these days and haven't been able to successfully get the dependencies building again on windows.

I'd welcome anyone with a bit of windows build experience to try out the scripts in https://github.com/rfk/pyenchant/tree/master/tools/pyenchant-bdist-win32-sources and see if they can get them up and running, and would be happy to offer help/advice. But I can't make any promises about getting this work done myself.

A different approach may be, if there's an existing python project that ships compiled glib libraries for windows, perhaps we can re-use their build system to get the dependencies needed here.

@alexcombessie

This comment has been minimized.

Copy link

alexcombessie commented May 23, 2016

hello, I am also interested if you or someone else finds a solution.

@ldevyataykina

This comment has been minimized.

Copy link

ldevyataykina commented May 23, 2016

Unfortunately I did't find solution with pyenchant, but I solve my task with pyspeller

@raja073

This comment has been minimized.

Copy link

raja073 commented Sep 19, 2016

Is this problem solved yet? Any alternative method for pyenchant for windows 10??

@sgeto

This comment has been minimized.

Copy link

sgeto commented Apr 7, 2017

@rfk Here's what you need to do:

  • rebuild and swap all bundled version of the enchant DLLs with their x64 counterparts.
  1. all of them (seriously. do it!)
  • edit the makefile
  1. the BUILD_DIR was pointing to some guy's private local repo. Change it to BUILD_DIR = $(PWD)/build
  2. if at all, it's ENCHANT_LIBS = -lglib-2.0 -lgmodule-2.0. Enchant-1.6.0 already checks and links glib in properly. If it's in your compiler's include and lib directories, that is Actually this line should not even be there.
  3. and a few other minor changes (see link at the bottom)
  • install Enchant-1.6.0 so it's in your path.
    That's mainly to fool _enchant.py because it won't continue unless it finds libenchant-1.dll somewhere in your path
  1. cd Enchant-1.6.0
  2. make install
  • executing setup.py form my the same msys or msys2 shell you used for the previous steps rather than from a cmd command prompt.
    So suppose you Windows python installation is in C:\Python36 or C:\Python27:
  1. cd ../../.. to get back to the pyenchant root directory
  2. run /c/Python36/python.exe setup.py install for python 3.6 or /c/Python27/python.exe setup.py install for python 2.7
  • done

sounds like a lot? prebuild binaries?
hmmmmmmmmmm...... alright. They should at least save you from the first step. The makefile is also included.
Build and tested on windows 10 x64
windows users unite!
https://1drv.ms/u/s!AsbijvwHoSaBuFzQ-GrP-nxGvgoZ
enjoy

@dwvisser

This comment has been minimized.

Copy link

dwvisser commented Apr 10, 2017

@sgeto So, trying to work from your .7z file, do I it. My understanding is that I should:

  1. Copy the various DLLs I find in the .7z file to C:\Windows\System32 or C:\Windows\SysWOW64
  2. Go into the Git source tree and run python setup.py install.

Is that correct? Or do I need to install msys2 and perform additional steps?

@sgeto

This comment has been minimized.

Copy link

sgeto commented Apr 10, 2017

Not really. And I'm sorry. I should have done it the more appropriate way and hand in a pull request. It's just that I never needed it. It was for a friend, and I just wanted to share the (sadly incomplete) steps here.
I'll send a pull request ASAP.
In the meantime:

  1. You could copy the DDLs into C:\Windows\System32. Although I wouldn't suggest it. Rather replace them with the old DDLs in pyenchant.old\tools\pyenchant-bdist-win32-sources\build. But even this is pretty destructive as you won't be able to produce x86 binaries anymore.

  2. After writing the comment, I realized that I forgot to add two more DDLs. That was the reason why _enchant.py was complaining and why I was only able to complete the setup from my Msys2 shell (the two missing DLLs where in my Msys path but not in my windows path).
    Once you add those two DLLs you can run python setup.py install from a regular cmd command prompt.

I was thinking to create a new package with the two DLLs included, and post it here, but again, it's just messy and very lazy. I'll fork the repo, add my changes, and submit a pull request.
And until @rfk manages to review and possibly merge it, you could just clone my fork where you can (hopefully) install the whole thing by simply typing python setup.py install.

@sgeto

This comment has been minimized.

Copy link

sgeto commented Apr 13, 2017

@dwvisser

This comment has been minimized.

Copy link

dwvisser commented Apr 14, 2017

@sgeto That's awesome. I unzipped it, did a python setup.py install, and everything looked good. However, I get the following traceback when using it:

Traceback (most recent call last):
  File "incremental_updater.py", line 27, in <module>
    DICTIONARY = Dict('en_US')
  File "C:\Users\dvisser\AppData\Local\Continuum\Anaconda2\envs\ITA\lib\site-packages\pyenchant-1.6.8-py2.7.egg\enchant\__init__.py", line 558, in __init__
    _EnchantObject.__init__(self)
  File "C:\Users\dvisser\AppData\Local\Continuum\Anaconda2\envs\ITA\lib\site-packages\pyenchant-1.6.8-py2.7.egg\enchant\__init__.py", line 168, in __init__
    self._init_this()
  File "C:\Users\dvisser\AppData\Local\Continuum\Anaconda2\envs\ITA\lib\site-packages\pyenchant-1.6.8-py2.7.egg\enchant\__init__.py", line 565, in _init_this
    this = self._broker._request_dict_data(self.tag)
  File "C:\Users\dvisser\AppData\Local\Continuum\Anaconda2\envs\ITA\lib\site-packages\pyenchant-1.6.8-py2.7.egg\enchant\__init__.py", line 310, in _request_dict_data
    self._raise_error(eStr % (tag,),DictNotFoundError)
  File "C:\Users\dvisser\AppData\Local\Continuum\Anaconda2\envs\ITA\lib\site-packages\pyenchant-1.6.8-py2.7.egg\enchant\__init__.py", line 258, in _raise_error
    raise eclass(default)
enchant.errors.DictNotFoundError: Dictionary for language 'en_US' could not be found

In a Python REPL, this makes sense because there don't appear to be any dictionaries present:

>>> import enchant
>>> enchant.list_languages()
[]

I've even copied en_US.aff and en_US.dic from the official win32 wheel file into ...\envs\ITA\Lib\site-packages\pyenchant-1.6.8-py2.7.egg\enchant\share\enchant\myspell, but I get the same error.

@sgeto

This comment has been minimized.

Copy link

sgeto commented Apr 14, 2017

hmm weird... I am getting the same error now too.
I tried to update enchant to 1.6.1 in one of my commits. That turned out to be a bad idea...
I think that some remnants of that failed attempt are left in the source tree and are causing this.

I'm a little busy right now but I look into that, alright?

@dwvisser

This comment has been minimized.

Copy link

dwvisser commented Apr 17, 2017

@sgeto Great. Thanks!

@dwvisser

This comment has been minimized.

Copy link

dwvisser commented Apr 27, 2017

@sgeto Any progress? For now, we've decided on our software that uses pyenchant, that the Windows version just won't enable the spell-checker component, but we'd love to re-enable that. 😄

@sgeto

This comment has been minimized.

Copy link

sgeto commented Apr 28, 2017

Yes. And sorry. Had a few very busy days. I get to it ASAP.
What is the name of your software?
May I suggest that until I get it done cleanly, I update the 7z packages. That is, I wi add the two missing DLLs and convert them into win32 installers for easy installation.

Please leave me a reminder if I don't get this done by Sunday. Till then.

@dwvisser

This comment has been minimized.

Copy link

dwvisser commented May 1, 2017

@sgeto Thanks for looking into it. The need for pyenchant is for a component of our software where we're bulk-ingesting PDF documents that need to be OCR'd. The spell checker provides a simple means of deciding if we've gotten gibberish or not.

@cmyl

This comment has been minimized.

Copy link

cmyl commented May 9, 2017

@sgeto Struggling to hold my breath any longer. Would really appreciate your help on this!

@sgeto

This comment has been minimized.

Copy link

sgeto commented May 10, 2017

sorry you guys I'm out. I just had another look and think it will take me more time than I can spare.
What's strange is that enchant works flawlessly on the build machine. But the it complains when run on another PC. You need to find out why...

Sigh, the whole thing is a mess and the owner is unavailable. Classic.

Anyways Good Luck

@dwvisser

This comment has been minimized.

Copy link

dwvisser commented May 22, 2017

@sgeto Thanks for you efforts. For me, I've been pursuing an additional strategy with our application anyway, which is to deploy it in a pair of Docker containers. PyEnchant "just works" for us on Linux.

@cshaley cshaley referenced this issue Sep 5, 2017

Closed

Add pyenchant #3853

mitya57 added a commit to retext-project/retext that referenced this issue Sep 12, 2017

setup.py: Do not install pyenchant on Windows
It fails to install with 64-bit Python, see rfk/pyenchant#42.

mitya57 added a commit to retext-project/retext that referenced this issue Sep 12, 2017

setup.py: Move pyenchant to extras_require
It fails to install from PyPI on some platforms, see rfk/pyenchant#42.
@rfk

This comment has been minimized.

Copy link
Owner

rfk commented Feb 24, 2018

As you all have undoubtedly noticed, I am no longer actively maintaining this project, and I've no reason to believe that will change. Thanks to everyone who dived in to try to help resolve this issue, but in order to make appearances match reality, I'm going to move this project into archive mode:

https://rfk.id.au/blog/entry/archiving-open-source-projects/

If anyone is interested in forking and taking over maintenance of this project, please reach out via the link above and I'll be happy to help coordinate a handoff.

@rfk rfk closed this Feb 24, 2018

mitya57 added a commit to retext-project/retext that referenced this issue May 13, 2018

setup.py: Move pyenchant to extras_require
It fails to install from PyPI on some platforms, see rfk/pyenchant#42.

(cherry picked from commit a7a4350)
@abhishek-27

This comment has been minimized.

Copy link

abhishek-27 commented Aug 21, 2018

Installing this 'sudo apt-get install python-enchant' fixed my issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment