簡體   English   中英

GnuRadio:在子目錄中組織 OOT 模塊 python 代碼

[英]GnuRadio: organizing OOT module python code in sub-directories

我使用 gr_modtool 將 python 中的自定義塊添加到 OOT 模塊。 看來我寫的所有源 python 都必須駐留在 gr-my_oot_module/python 目錄中。 我將編寫分布在許多 python 文件中的大量代碼。 我想將這些文件組織到 gr-my_oot_module/python 下的子目錄(大概)中。 簡單地創建這些目錄並將代碼放在那里並不會導致安裝成功。

將我為此模塊編寫的 python 文件組織到子目錄中的正確方法是什么?

進一步來說:

  1. 我通過 gr_modtool 添加了一個塊。 關聯的python 文件放在python 目錄中。
  2. 然后我將該 .py 文件移動到 python/ 下的子目錄 (sub_dir) 中。
  3. 我修改了 python 目錄下的 init.py 和 CMakeLists.txt 以反映子目錄位置,然后進行安裝。

該塊出現在 GRC 中。 當我嘗試使用它時,它會抱怨

File "/home/my_name/devel/gnuradio3_8/lib/python3.6/dist-packages/my_module/__init__.py"
 from .sub_dir.sub_dir_test_blk import sub_dir_test_blk
 ModuleNotFoundError: No module named 'my_module.sub_dir' –

沒錯,Python 代碼位於 python/ 下。 然后,您應該使用gr_modtool add添加 GNU Radio python 塊。 這也會將它們添加到 CMakeLists.txt,從而確保它們在安裝過程中得到安裝。

不,只是將文件放在子目錄中不會使它們成為已安裝模塊的一部分。 這與任何其他 python 代碼沒有什么不同。 如果您希望事物成為模塊的一部分,則需要將它們放在__init__.py python.org 教程是您的朋友!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM