L'incorporation d'une parcelle de terrain dans un site web avec Python/bokeh

Je suis en train d'intégrer de manière statique un flou d'arrière-plan de l'intrigue dans un site personnel, et je suis de la rencontre d'un comportement que je ne comprends pas. En gros, je suis de la génération d'un tracé à l'aide de bokeh comme suit:

import bokeh.plotting as bplt
import numpy as np

x=np.random.random(100)
y=np.random.random(100)

bplt.output_file("t.html")
plot=bplt.line(x,y)

##the following line refers to the bokeh installed on my home computer
print plot.create_html_snippet(
           static_path='/usr/local/lib/python2.7/site-packages/bokeh/server/static/')

##the following line refers to the bokeh installed on my remote computer
#print plot.create_html_snippet(
#           static_path='/opt/anaconda/lib/python2.7/site-packages/bokeh/server/static/')

So far So good. Cela produit un fichier qui ressemble à (random garbage).embed.js, et un imprime chaîne de caractères contenant la syntaxe html, que j'ai copier manuellement dans un fichier html, je fais appel testembed.html, que j'ai reproduit ci-dessous:

<html>
<body>

<h2>Simple Embed Example</h2>
<p>This is where my plot should be:</p>
<p>
<!--The next 4 lines are the output of the print statement from the python code-->
<script src="ccbd451a-6995-4dd2-b99c-e4140b362997.embed.js"
        bokeh_plottype="embeddata"
        bokeh_modelid="ccbd451a-6995-4dd2-b99c-e4140b362997"
        bokeh_modeltype="Plot" async="true"></script>
</p>

</body>
</html>

Si j'ai le code python de référence de mon local d'installation de python et de copier les fichiers générés (.html et .embed.js) à mon ordinateur local, je pouvez voir la parcelle dans le fichier html.

Cependant, ce que je veux vraiment faire de cette course sur un ordinateur distant, et avoir le fichier html accessible via le web sur mon site personnel.

Quand j'ai static_path référer à mon de l'ordinateur distant python installer (comme indiqué ci-dessus, commenté), je ne pouvez pas voir le complot dans la page html quand j'y accéder via le web (ie, va http://mywebsite.com/testembed.html). Je n'ai aucune idée de pourquoi cela se passe.

Pour référence, voici le code où l'extrait de code html fonction est définie:
https://github.com/ContinuumIO/bokeh/blob/master/bokeh/objects.py#L309
et je remarque qu'il y a une option que je suis pas passant create_html_snippet, c'est à dire, embed_base_url, qui pourrait ont quelque chose à voir avec cela.

Merci d'avance!
Mike

MODIFIER
J'ai pris bigreddot's des conseils, ce qui a résolu le problème. Le réel problème que j'avais été a été que le serveur que j'utilisais était, pour des raisons de sécurité, seuls en mesure d'accéder à des choses dans ma public_html répertoire. La solution a été de rsync la bokeh/static répertoire dans mon public_html et de point:

rsync -ax /opt/anaconda/lib/python2.7/site-packages/bokeh/server/static/ /home/myusername/public_html/bokeh-static/

puis modifier mon code comme suit:

import bokeh.plotting as bplt
import numpy as np

x=np.random.random(100)
y=np.random.random(100)

bplt.output_file("t.html")
plot=bplt.line(x,y)


#the following line refers to the bokeh rsynced to my directory
print plot.create_html_snippet(
           static_path='http://www.my_server_website/~myusername/bokeh-static/', 
           embed_base_url = 'http://www.my_server_website/~myusername/where_.js_file_is_located')

et puis évidemment, copier le code html généré dans le testembed.html.

OriginalL'auteur Mike | 2014-03-12