简体   繁体   中英

locate lib Orca with python

I´m trying to export the plot into a jpg file. For that, I´m using this code:

from plotly.offline import iplot, init_notebook_mode
import plotly.graph_objs as go
import plotly.io as pio
import plotly

import os
import numpy as np

init_notebook_mode(connected=True)

N = 100
x = np.random.rand(N)
y = np.random.rand(N)
colors = np.random.rand(N)
sz = np.random.rand(N)*30

fig = go.Figure()
fig.add_scatter(x=x,
                y=y,
                mode='markers',
                marker={'size': sz,
                        'color': colors,
                        'opacity': 0.6,
                        'colorscale': 'Viridis'
                       });
iplot(fig)

pio.write_image(fig, 'fig1.png')

The problem that I have is with ORCA. This lib can be locate but it's installed. This is the error that I got:

ValueError: The orca executable is required in order to export figures as static images, but the executable that was found at '/opt/conda/bin/orca' does not seem to be a valid plotly orca executable. Please refer to the end of this message for details on what went wrong.

If you haven't installed orca yet, you can do so using conda as follows:

$ conda install -c plotly plotly-orca

Alternatively, see other installation methods in the orca project README at https://github.com/plotly/orca .

After installation is complete, no further configuration should be needed.

If you have installed orca, then for some reason plotly.py was unable to locate it. In this case, set the plotly.io.orca.config.executable property to the full path of your orca executable. For example:

>>> plotly.io.orca.config.executable = '/path/to/orca'

After updating this executable property, try the export operation again. If it is successful then you may want to save this configuration so that it will be applied automatically in future sessions. You can do this as follows:

>>> plotly.io.orca.config.save() 

If you're still having trouble, feel free to ask for help on the forums at https://community.plot.ly/c/api/python

Here is the error that was returned by the command $ /opt/conda/bin/orca --help

[Return code: 127] /opt/conda/lib/orca_app/orca: error while loading shared libraries: libXtst.so.6: cannot open shared object file: No such file or directory

Note: When used on Linux, orca requires an X11 display server, but none was detected. Please install X11, or configure your system with Xvfb. See the orca README ( https://github.com/plotly/orca ) for instructions on using orca with Xvfb.

Anyone know how to fix this error?

I had to invest significant effort in order to get Orca to work on Ubuntu 18 in my Django 2 project. Here is what I did that finally worked:

I did this on Ubuntu 18.04.3 LTS

In the below it is assumed that your user name is USERNAME and your virtual environment directory is named "myvenv"

  1. Get the Orca AppImage file to /home/USERNAME/myvenv/bin and change the rights on the file

wget https://github.com/plotly/orca/releases/download/v1.2.1/orca-1.2.1-x86_64.AppImage chmod +x orca-1.2.1-x86_64.AppImage

  1. Install the following packages

sudo apt-get install desktop-file-utils
sudo apt-get install libgtk2.0-0 sudo apt-get install libgconf-2-4 sudo apt-get install xvfb sudo apt-get install chromium-browser

  1. Create a file named orca in /home/USERNAME/myvenv/bin/ with the following content:

#!/bin/bash

xvfb-run -a orca-1.2.1-x86_64.AppImage "$@"

The solution is on plotly/orca

This i what I have done and it solved my issue:

  1. Download orca-1.2.1-x86_64.AppImage

  2. Make a softlink by ln -s orca-1.2.1-x86_64.AppImage orca , then you see orca -> orca-1.2.1-x86_64.AppImage*

  3. create a file and name it orca-executable.sh and its content is

    #!/bin/bash

    xvfb-run -a orca "$@"

Then add below line into your script

plotly.io.orca.config.executable = '/path/to/orca/orca-executable.sh'

Files under path /path/to/orca :

rwxrwxrwx 1 root root       26 Feb 14 03:09 orca -> orca-1.2.1-x86_64.AppImage*
-rwxr-xr-x 1 root root 51607939 Feb 14 03:08 orca-1.2.1-x86_64.AppImage*
-rwxr-xr-x 1 root root       34 Feb 14 03:33 orca-executable.sh*

What worked for me on Windows is:

  • Following https://github.com/plotly/orca#installation - Method 4: Standalone binaries:

    • Download windows-release.zip from https://github.com/plotly/orca/releases
    • Install the executable
    • Right click on the desktop newly created Orca icon to get the path where the application was installed (in my case C:\Users\ventafri\AppData\Local\Programs\orca\orca.exe ).
    • From the plotly\io folder (in my case C:\Users\ventafri\AppData\Local\Programs\Python\Python36\Lib\site-packages\plotly\io ) open _orca.py

Substitute:

  # Try to find an executable
   # -------------------------
   # Search for executable name or path in config.executable
   executable = which(config.executable)
   path = os.environ.get("PATH", os.defpath)
   formatted_path = path.replace(os.pathsep, "\n    ")

with:

# Try to find an executable
# -------------------------
# Search for executable name or path in config.executable
executable = r"C:\Users\ventafri\AppData\Local\Programs\orca\orca.exe"
path = os.environ.get("PATH", os.defpath)
formatted_path = path.replace(os.pathsep, "\n    ")

As @Eudald mentioned here in Windows to resolve the problem you need to just downgrade plotly-orca to 1.2.1 by:

conda install -c plotly plotly-orca==1.2.1

I was also able to get orca working by following the procedure described in https://stackoverflow.com/a/59893131/5650199 by KittenCrypto, but for those who are used to installing orca via node.js I thought that I would detail an alternative approach:

sudo apt-get install xvfb
sudo npm install -g electron@6.1.4 orca

Then replace the node installed symlink /usr/local/bin/orca with an xvfb launch script

sudo rm -f /usr/local/bin/orca
printf '#!/bin/bash\nxvfb-run -a /usr/local/lib/node_modules/orca/bin/orca.js "$@"' | sudo tee /usr/local/bin/orca
sudo chmod +x /usr/local/bin/orca

I did this on an Ubuntu 18.04 server with an apt installed python3.7 environment and have tested that static image export works as expected by running:

import pandas as pd
import plotly.express as px

x = [0, 2, 4]
y = [0, 4, 16]
df = pd.DataFrame({'x': x, 'y': y})
fig = px.line(df, x='x', y='y')
fig.write_image('test.png')

Note that the above procedure will work even if you are not running an anaconda python distribution.

I Just solve it

(mac os)

Run following command:

sudo conda install -c plotly plotly-orca

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM