ARM Python dist package for Aspose.Words

Hi, I use a Macbook PRO M1 to work and right now we use aspose-cells and aspose-words on our environment, right now I can only install aspose-cells on both Mac and Docker, aspose-words doesn’t have a valid distribution for arm.

It’s ok if we can only have this on Linux ARM, at least we could use on our Docker containers. We tried to use Rosetta 2 on Docker but the performance of the containers are not good and the aspose-words is the only library preventing us to work with full ARM container on docker to avoid Rosetta.

1 Like

Yes, please! I was following this thread Can't pip install aspose-words for trial (even with temporary license), @anastasija said maybe it would be available August-September 2022, any new estimate?

@brunohenrique Unfortunately, there is still no support for MacOS. I have linked your topic to the corresponding WORDSNET-24045 issue. We will keep you informed and let you know once MacOS support is added.
Also, I have logged another issue WORDSNET-25052 for Linux ARM architecture support.

1 Like

Awesome @alexey.noskov, Thank you!

1 Like

Thanks @alexey.noskov, quick question, where can I follow those issues? Are they public accessible? I would like to see the progress about those.

@joaomedeiros95 There is no public access to our defect tracking system. But you can track status of the issues here in this forum. You can see them at the bottom of this page.

1 Like

@joaomedeiros95 @brunohenrique We are glad to let you know that the latest 23.12 version of Aspose.Words for Python supports MacOS ARM architecture.

@alexey.noskov it seems like Aspose.Words for python is broken on MacOS ARM… It crashes on setup and on use with libc++abi: terminating due to uncaught exception of type HostException: coreclr_initialize failed - status:0x80004005

@ichicoro We have tested Aspose.Words for Python on MacOS ARM and there were no problems. Do you get the mentioned error upon installing aspose-words package? Or the error occurs upon executing code that uses Aspose.Words? If the problem occurs upon executing the code, please share the code and documents that will allow us to reproduce the problem.

There was a python crash on installation, but I wasn’t able to reproduce by reinstalling the package even with --force, and pip finished the install successfully every time.

I’m also fairly sure importing aspose-words with import aspose.words as aw is enough to make python crash since it was the only line and python still crashed.

@ichicoro We have retested the scenario on a clean MacOS ARM and there are no problems.

The package is installed using the following command:
pip install aspose-words

And then the following code has been used for testing:

import aspose.words as aw

# Create a blank document.
doc = aw.Document()

# Use a document builder to add content to the document.
builder = aw.DocumentBuilder(doc)
# Write a new paragraph in the document with the text "Hello World!".
builder.writeln("Hello, World!")

# Save the document in DOCX format. Save format is automatically determined from the file extension.
doc.save("output.docx")

# Test Conversion
doc = aw.Document("output.docx")
doc.save("output.pdf")

Everything works as expected.

Maybe I have an old install of dotNET or the wrong version installed?

@ichicoro .NET installation is not required for Aspose.Words for Python to work. All the required dlls are embedded into the wheel file. Have you tried uninstalling the package and installing it again? Please see our documentation about Aspose.Words for Python system requirements:
https://docs.aspose.com/words/python-net/system-requirements/

I’ve tried the test code, and OUTSIDE a specific python venv it works, but INSIDE that same python venv it crashes. What could be the reason?

@ichicoro Could you please describe in details the environment where the problem is reproducible and how to reproduce the problem? We will try to recreate the same environment and investigate the problem.

I was able to fix the problem by recreating the venv from scratch, however it seems like docx writing to stream is broken? Is this supposed to be a limitation of the free trial?

To be clear:

# broken
final_document = BytesIO()
aw_doc.save(final_document, aw.SaveFormat.DOCX)

# works
aw_doc.save(filename, aw.SaveFormat.DOCX)

# broken
with open(filename, "wb") as stream:
    aw_doc.save(stream, aw.SaveFormat.DOCX)

# works
with open(filename + ".pdf", "wb") as stream:
    aw_doc.save(stream, aw.SaveFormat.PDF)

@ichicoro The code works fine on my side. The document is saved fine in both stream and directly to file.

No, there is no such limitations. In evaluation mode Aspose.Words has only two limitations: it limits the maximum size of the processed document to several hundreds of paragraphs and injects an evaluation watermark into the document.

The issues you have found earlier (filed as WORDSNET-24045) have been fixed in this Aspose.Words for .NET 24.1 update also available on NuGet.