如何让Python看到librt?

时间:2012-04-26 21:48:57

标签: python perforce librt

我刚安装了python-dev:

$ sudo apt-get install python-dev

这样我就可以开始使用P4Python了。但是当我尝试导入P4时,我得到了:

Traceback (most recent call last):
  File "/opt/pycharm-2.5/helpers/pycharm/utrunner.py", line 113, in <module>
    modules = [loadSource(a[0])]
  File "/opt/pycharm-2.5/helpers/pycharm/utrunner.py", line 44, in loadSource
    module = imp.load_source(moduleName, fileName)
  File "/home/nyap/proj/p4-rollback/Tools/Perforce/util/p4_rollback_unit_test.py", line 32, in <module>
    import P4
  File "/home/nyap/proj/p4-rollback/Tools/Perforce/p4python/build/lib.linux-x86_64-2.7/P4.py", line 312, in <module>
    import P4API
ImportError: /home/nyap/proj/p4-rollback/Tools/Perforce/p4python/build/lib.linux-x86_64-2.7/P4API.so: undefined symbol: clock_gettime

我需要做些什么才能让它发挥作用?

1 个答案:

答案 0 :(得分:3)

以下是一些可以尝试的事情。

  • 您确定系统上有librt.so可用吗?

  • 您可以尝试在ldd上运行/home/nyap/proj/p4-rollback/Tools/Perforce/p4python/build/lib.linux-x86_64-2.7/P4API.so,以查看要链接的共享库。是否列出了librt?它被发现了吗?

  • 您可以尝试预加载librt,看看是否有帮助:

    LD_PRELOAD=/path/to/librt.so python ...
    
  • 您可以通过设置LD_DEBUG=libs

    在动态加载程序中启用调试
    LD_PRELOAD=libs python
    

    这将显示有关加载程序正在查找的库以及找到它们的位置的信息。

希望其中一件事有所帮助。