Google Colab 看不到 .so 文件
Google Colab does not see .so files
我正在尝试制作一个CUDA扩展,以便在Google Colab的Python中使用它。
这是 setup.py
sources = [os.path.join(path_to_cpp, 'interface.cpp'),
os.path.join(path_to_cpp, 'box_encoder_cuda.cu'),
os.path.join(path_to_cpp, 'random_horiz_flip.cu')]
setup(
name='SSD',
ext_modules=[
CUDAExtension(
'SSD._C',
sources)
],
cmdclass={
'build_ext': BuildExtension
})
当我构建它时,我可以清楚地看到构建中存在 libc10.so
x86_64-linux-gnu-g++ -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-
z,relro -Wl,-Bsymbolic-functions -Wl,-z,relro -g -fstack-protector-strong -Wformat -Werror=format-
security -Wdate-time -D_FORTIFY_SOURCE=2 build/temp.linux-x86_64-3.6/content/drive/My
Drive/SSD/csrc/interface.o build/temp.linux-x86_64-3.6/content/drive/My Drive/SSD/csrc/box_encoder_cuda.o build/temp.linux-x86_64-3.6/content/drive/My
Drive/SSD/csrc/random_horiz_flip.o -L/usr/local/lib/python3.6/dist-packages/torch/lib -
L/usr/local/cuda/lib64 -lc10 -ltorch -ltorch_cpu -ltorch_python -lcudart -lc10_cuda -ltorch_cuda -o
build/lib.linux-x86_64-3.6/SSD/_C.cpython-36m-x86_64-linux-gnu.so
但是,如果我尝试在 Colab 中使用它:
%%writefile test.py
import SSD._C
print("All ok")
!python test.py
我将看到以下错误消息:
Traceback (most recent call last):
File "test.py", line 1, in <module>
import SSD._C
ImportError: libc10.so: cannot open shared object file: No such file or directory
也许这是因为库没有在 Python 运行时中声明,我必须以某种方式声明它们?提前谢谢你!
附言 当我尝试直接在单元格中使用它而不写入.py文件时:
import SSD._C
print("All ok")
它产生
ModuleNotFoundError: No module named 'SSD'
在导入扩展之前导入火炬解决了问题:
%%writefile test.py
import torch
import SSD._C
print("All ok")
根据文档"这将解决动态链接器必须看到的一些符号"。
但是,为什么这个扩展名不能直接在.ipynb单元格中使用仍然是一个开放点。
编辑:如果在 .ipynb 中安装新扩展,请确保在使用前重新启动运行时。重新启动后,您将能够在 .ipynb 单元格中使用新扩展名
相关文章:
- 如何使用ndk-build.cmd构建Android.so文件
- 在C++代码中包含opencv时,使用ctypes创建.so文件
- 如何从构建 libgpio.so 的生成文件构建libgpio.a
- 用于构建 cuda .so 文件(共享库)的生成文件
- 无法从 SO 文件调用 SO 文件的函数 - C++生成文件
- 共享库 (.so) 没有扩展名的 Linux 可执行文件之间的区别?
- 如何在 C++ 的 .so 文件中包含库
- JNI,使用两个 .so 文件时出错,其中一个文件需要另一个文件
- 为什么C++可执行文件在与较新的libstdc++.so链接时运行得更快?
- Google Colab 看不到 .so 文件
- ./main:加载共享库时出错:libopencv_highgui.so.4.0:无法打开共享对象文件:没有这样的文件或
- 如何在 Linux 中从 .so 文件打开可执行文件?
- 如何在makefile中包含tensorflow c ++".so"文件?
- 缺少 .h 文件,尽管从库文件夹链接了 .so 文件
- 如何在 CMake 超级生成中查找 dll/so 文件
- 如何用.so文件linux打包所有需要的库
- 如何调试visual studio 2017生成的C++代码.android中的SO文件和其他第三方库
- 如何使用 gnu c++ 程序获取共享对象文件(.so 文件)的体系结构
- EMF文件(.so)调试,符号找不到VTable错误
- 如何将c++库作为共享对象文件(.so)加载到Python中?