How to import/compile uefi module using micropython? - micropython

Following the instructions on MicroPythonTestFramework/MicroPythonPkg, I can successfully run micropython.efi (using VS2015x86 instead of VS2017).
However importing the uefi module as given in the example on the above link fails:
FS0:\EFI\Python\> micropython.efi
MicroPython v1.9.4 on 2018-07-30; uefi version
Use Ctrl-D to exit, Ctrl-E for paste mode
>>> import Lib.Uefi.uefi as uefi
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: no module named 'Lib.Uefi'
MicroPythonDxe.efi is in the same folder as micropython.efi.
How do I do to compile the uefi module into MicroPythonDxe.efi?

In order to successfully import the Python UEFI module, you must have the UEFI Python library on your device and accessible.
The modules you are looking for are located in MicroPythonPkg/MicroPythonDxe/Lib/Uefi.
The device file system will end up looking something like below
FS0:\EFI\Python\Lib\Uefi\uefi.py
\features.py
\msr.py
\protocols.py
\register.py.... etc

Related

ImportError: no module named 'SDCard'

I'm using Thonny version 3.3.13 on Windows 10 to program Raspberry Pi Pico.
The main program is main.py. I have no issues with it (examples are working), except any local imports.
I'm following this tutorial.
It is not duplicated, as I've searched and tested many version of import on StackOverflow and many other websites for hours.
My file structure:
sd_card_read
|-main.py
|-lib
|-__init__.py
|-SDCard.py
My main.py file:
import sys
print(sys.path)
import SDCard
#... the rest of the code
The error I'm getting is:
['', '.frozen', '/lib']
Traceback (most recent call last):
File "<stdin>", line 10, in <module>
ImportError: no module named 'SDCard'
How can I solve the import?
Notes:
I tried appending '.' and '/' to sys, it does not work. e.g sys.path.append('/')
I tried different versions of import, no luck. e.g from lib import SDCard
While Thonny allows you to run a file opened from your local computer, it ONLY allows importing modules from its own internal storage.
For me, this is confusing.
I ran "Save copy..." on all my module files, chose "Raspberry Pi Pico" and entered the filename manually.
Maybe there is another way of doing this in Thonny, as this is my first time using MicroPython on RPi Pico.
Try
from lib import SDCard
It works like that because lib is the package and not SDCard. SDCard is just a file in the package.

Cannot import Tensorflow with Eclipse on Ubuntu16.04

The bug happens when I try to import Tensorflow on Eclipse. Tensorflow can
be imported when I directly run the python code without using IDEs (I test it and it works perfectly). I've also tested my codes on PyCharm, it's fine with Pycharm....
I've tested the LD_LIBRARY_PATH,PATH,CUDA_HOME variables with echo. I also tried to directly append the cuda libraries into the Ecplipse pydev interpreter setting. So it is really confusing me. I did face a similar question with another machine, but I solved it by modifying the ~/.bashrc file.
I'm using Ubuntu16.04, python2.7,eclipse Neon3, GTX1080ti.
Any ideas? Following is the bug information:
Traceback (most recent call last): File "/home/zernmern/workspace/test/p1/test.py", line 2, in <module>
import tensorflow as tf
File "/home/zernmern/.local/lib/python2.7/site-packages/tensorflow/__init__.py", line 24, in <module>
from tensorflow.python import *
File "/home/zernmern/.local/lib/python2.7/site-packages/tensorflow/python/__init__.py", line 49, in <module>
from tensorflow.python import pywrap_tensorflow
File "/home/zernmern/.local/lib/python2.7/site-packages/tensorflow/python/pywrap_tensorflow.py", line 52, in <module>
raise ImportError(msg)
ImportError: Traceback (most recent call last):
File "/home/zernmern/.local/lib/python2.7/site-packages/tensorflow/python/pywrap_tensorflow.py", line 41, in <module>
from tensorflow.python.pywrap_tensorflow_internal import *
File "/home/zernmern/.local/lib/python2.7/site-packages/tensorflow/python/pywrap_tensorflow_internal.py", line 28, in <module>
_pywrap_tensorflow_internal = swig_import_helper()
File "/home/zernmern/.local/lib/python2.7/site-packages/tensorflow/python/pywrap_tensorflow_internal.py", line 24, in
swig_import_helper_mod = imp.load_module('_pywrap_tensorflow_internal', fp, pathname, description)
ImportError: libcusolver.so.8.0: cannot open shared object file: No such file or directory
Failed to load the native TensorFlow runtime.
Please let me know if more information is needed xD.
Ubuntu 16.04 uses Python 3.5 as the default system version of Python. You say that you are using Python 2.7. Did you install that yourself? It doesn't come with the OS. (And if you don't have a compelling reason to stay with Python 2.7, I would encourage you to switch to Py 3.x anyway, especially since you're working with a cutting-edge package like TensorFlow.)
Once you have two versions of Python on your system, it's easy to lose track of which packages you installed to which version of Python. I would check to see whether you happen to have installed TensorFlow, or parts of it, to the system Python 3.5 instead of your Python 2.7.
Finally, I find the solution from 'PyCharm cannot find library'
As the user 'Laizer' suggested:
The issue is that PyCharm(Here is Eclipse) was invoked from the desktop, and wasn't getting the right environment variables. Solution is to either:
invoke from the command line(i.e. Directly start eclipse by sh),
create a script to set environment and then invoke, and make a link to that script on the desktop,
or set environment variables on the desktop item

Tensorflow with Cuda, libcudart.so.7.5: cannot open shared object. eclipse (Liclipse)

When I import tensorflow in Liclipse I get the following error:
Traceback (most recent call last):
File "/home/user/Documents/workspace/project", line 13, in <module>
import tensorflow as tf
File "/usr/local/lib/python2.7/dist-packages/tensorflow/__init__.py", line 23, in <module>
from tensorflow.python import *
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/__init__.py", line 45, in <module>
from tensorflow.python import pywrap_tensorflow
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/pywrap_tensorflow.py", line 28, in <module>
_pywrap_tensorflow = swig_import_helper()
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/pywrap_tensorflow.py", line 24, in swig_import_helper
_mod = imp.load_module('_pywrap_tensorflow', fp, pathname, description)
ImportError: libcudart.so.7.5: cannot open shared object file: No such file or directory
I have correctly installed tensorflow and cuda and both work fine from the terminal.
Tensorflow was installed via pip and I am using cuda 7.5 and cuDNN v4 and
I am using ubuntu 14.04.
The cuda samples compile and run perfectly as does tensorflow outside of Liclipse.
I have added cuda to both my path and LD_LIBRARY_PATH in .bashrc:
export PATH=/usr/local/cuda-7.5/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-7.5/lib64:LD_LIBRARY_PATH
I have the Liclipse python interpreter set up as:
/usr/bin/python-2.7
Any help would be much appreciated.
For the record, I had the same problem using Python 3 + PyDev + Eclipse (which I believe might be similar to Liclipse in this respect); what helped in my case was to add the cuda lib folder to my PYTHONPATH when running the IDE, e.g.,
PYTHONPATH=$PYTHONPATH:/usr/local/cuda/lib64 ./myEclipseFolder/eclipse
That made PyDev offer me the cuda lib folder for inclusion when setting up the Python interpreter, and then my tensorflow scripts worked.
Not a solution, but a work around. I'm simply running my scripts from the terminal. Its a pain for debugging but I am still unable to get TF to work with Liclipse.

Using ipython magics from inside python modules to be loaded in notebook

I am pretty new to ipython and still learning and liking its functionality. Trying to write a module with common tasks so users of a notebook can load my custom module and save typing common code.
Here is a sample mymodule.ipy:
import mymodule as mymod
mymod.func():
wd=%pwd
return wd
When I test it in the notebook:
import mymodule as my
---------------
ImportError Traceback (most recent call last)
<ipython-input-1-1036e4702cf4> in <module>()
----> 1 import mymodule as my
ImportError: No module named mymodule
But when I rename the module file as mymodule.py, the module load fails with error message denoting it cannot recognize the pwd magic:
File "mymodule.py", line 2
wd=%pwd
^
SyntaxError: invalid syntax
My question is how do I write a module with ipython magics and other ipython functionality in it which I can load from notebooks? I had the impression that I can put ipython code into a file with .ipy extension and can load it from ipython. Am I missing something?
"%run mymodule.ipy" as pointed in my comment serves my need for now. Posting it as answer to close this question. Feel free to post more if you have a "module" approach.

Configuring Pydev(Eclipse) to Use Sage

I am trying to utilize the Eclipse IDE environment with SAGE using the Pydev extension.
I am following these steps as outline here at http://groups.google.com/group/sage-support/browse_thread/thread/628b80e6bebcc317
Executing a simple code as
import sys
from sage.all import *
print ("2")
gives me an error with the following traceback
Traceback (most recent call last):
File "/Users/username/Documents/eclipse/python/test2.py", line 2, in <module>
from sage.all import *
File "/Users/username/Desktop/sage/local/lib/python2.6/site-packages/sage/all.py", line 63, in <module>
from sage.ext.c_lib import _init_csage, sig_on_count
ImportError: dlopen(/Users/username/Desktop/sage/local/lib/python2.6/site- packages/sage/ext/c_lib.so, 2): Library not loaded: libcsage.dylib
Referenced from: /Users/username/Desktop/sage/local/lib/python2.6/site-packages/sage/ext/c_lib.so
Reason: image not found
As by the instructions, trying to execute eclipse from the terminal window(OSX Lion) by the following
$sage -sh
$eclipse
only gives me the following traceback
-bash: -sh: command not found
Any help would be appreciated, notebook() ide of SAGE works fine but Id like to be able to use the Eclipse IDE environment rather than an online server browser.
Sounds as if you entered the '$'. It is sometimes used to indicate a line of input at the terminal. You should also make sure, that sage and eclipse are in your PATH, or you could use the complete path in both cases
~/path/to/sage -sh
~/path/to/eclipse