鱼C论坛

 找回密码
 立即注册
查看: 1440|回复: 6

自己写的库,linux中无法找到包

[复制链接]
发表于 2023-11-16 20:35:36 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
自己写的库,放在 /pythonx.xx/site-packages/目录下,  程序运行时,提示找不到包,在windows下运行是正常的。有遇到过该问题的大佬没,帮帮可怜的孩子吧!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-11-16 20:35:45 | 显示全部楼层
你好,这个问题可能是因为 Linux 没有将你的自定义库所在的目录添加到 Python 的搜索路径中。你可以尝试以下方法解决:

1. 确保你的自定义库所在的目录已经添加到了  PYTHONPATH  环境变量中。你可以通过在终端中运行  echo $PYTHONPATH  来检查是否已经添加。

2. 如果没有添加,你可以通过以下命令将你的自定义库所在的目录添加到  PYTHONPATH  中:
   export PYTHONPATH=$PYTHONPATH:/pythonx.xx/site-packages/
   

3. 如果你希望这个设置永久生效,可以将上述命令添加到你的  ~/.bashrc  或  ~/.bash_profile  文件中。

希望这些方法能够帮助你解决问题!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-11-16 20:36:17 | 显示全部楼层
非代码部分:

遇到在Linux系统中找不到自己写的库的问题,可能是由于包搜索路径配置不正确导致的。以下是一些常见的解决方法:

解决方法如下:

1. 确认Python版本: 确保你的程序在Linux系统中使用的是正确的Python版本。可以通过命令行输入python --version来确认当前默认的Python版本。如果需要使用特定版本的Python,可以使用python3python2加以区分。

2. 检查包路径: 在Linux系统中,Python的包搜索路径可能会有所不同。除了/pythonx.xx/site-packages/目录之外,还可能涉及到系统级和用户级的其他路径。你可以尝试将自己写的库放置在其他路径下,例如/usr/local/lib/pythonx.xx/dist-packages/或者~/.local/lib/pythonx.xx/site-packages/,然后再运行程序看是否能够找到库。

3. 使用sys.path添加路径: 你可以在程序中使用sys.path.append()函数来动态添加包搜索路径。在你的程序开始的地方添加以下代码,将自己写的库所在的路径添加到搜索路径中:
import syssys.path.append('/pythonx.xx/site-packages/')
4. 检查库文件名和导入语句: 确保你的自定义库文件的命名与导入语句一致。例如,如果你的库文件名为mylibrary.py,那么你需要使用import mylibraryfrom mylibrary import ...来导入库。

5. 权限问题: 确保你的Python库文件具有执行权限,并且能够被当前用户所访问。可以使用chmod命令来更改文件权限。

通过以上方式,你应该能够解决在Linux系统中无法找到自定义库的问题。祝你顺利解决这个困扰,如果还有其他问题,欢迎随时提问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-11-16 20:45:05 | 显示全部楼层
isdkz 发表于 2023-11-16 20:35
你好,这个问题可能是因为 Linux 没有将你的自定义库所在的目录添加到 Python 的搜索路径中。你可以尝试以 ...

我用的是绝对路径 没有效果。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-11-16 20:46:26 | 显示全部楼层
Mike_python小 发表于 2023-11-16 20:36
非代码部分:

遇到在Linux系统中找不到自己写的库的问题,可能是由于包搜索路径配置不正确导致的。以下是 ...


这个方法每个py文件都要有吧,AI回答里面有。。太麻烦了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-11-16 20:56:11 | 显示全部楼层
我不是第一个 发表于 2023-11-16 20:46
这个方法每个py文件都要有吧,AI回答里面有。。太麻烦了。

你执行 python -m site 看看 sys.path 都有哪些路径,你要把你的库放进这些路径才有效
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-11-17 01:10:08 | 显示全部楼层
Python 3.11.5 (main, Sep  2 2023, 14:16:33) [GCC 13.2.1 20230801]
Type 'copyright', 'credits' or 'license' for more information
IPython 8.17.2 -- An enhanced Interactive Python. Type '?' for help.

In [1]: import sys

In [2]: sys.path
Out[2]:
['/usr/bin',
 '/usr/lib/python311.zip',
 '/usr/lib/python3.11',
 '/usr/lib/python3.11/lib-dynload',
 '',
 '/usr/lib/python3.11/site-packages']

In [3]: import os

In [4]: os.system('cat /usr/lib/python3.11/site-packages/hello.py')
#!/usr/bin/env python
#coding=utf-8

def hello():
    print('hello')
Out[4]: 0

In [5]: import hello

In [6]: hello.hello()
hello

In [7]:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-24 02:08

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表