我不是第一个 发表于 2023-11-16 20:35:36

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

自己写的库,放在 /pythonx.xx/site-packages/目录下,程序运行时,提示找不到包,在windows下运行是正常的。有遇到过该问题的大佬没,帮帮可怜的孩子吧!!!{:5_109:}

isdkz 发表于 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文件中。

希望这些方法能够帮助你解决问题!

Mike_python小 发表于 2023-11-16 20:36:17

非代码部分:

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

解决方法如下:

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

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 sys
sys.path.append('/pythonx.xx/site-packages/')


4. 检查库文件名和导入语句: 确保你的自定义库文件的命名与导入语句一致。例如,如果你的库文件名为mylibrary.py,那么你需要使用import mylibrary或from mylibrary import ...来导入库。

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

通过以上方式,你应该能够解决在Linux系统中无法找到自定义库的问题。祝你顺利解决这个困扰,如果还有其他问题,欢迎随时提问。

我不是第一个 发表于 2023-11-16 20:45:05

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

我用的是绝对路径 没有效果。

我不是第一个 发表于 2023-11-16 20:46:26

Mike_python小 发表于 2023-11-16 20:36
非代码部分:

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

这个方法每个py文件都要有吧,AI回答里面有。。太麻烦了。

isdkz 发表于 2023-11-16 20:56:11

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

你执行 python -m site 看看 sys.path 都有哪些路径,你要把你的库放进这些路径才有效

人造人 发表于 2023-11-17 01:10:08

Python 3.11.5 (main, Sep2 2023, 14:16:33)
Type 'copyright', 'credits' or 'license' for more information
IPython 8.17.2 -- An enhanced Interactive Python. Type '?' for help.

In : import sys

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

In : import os

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

def hello():
    print('hello')
Out: 0

In : import hello

In : hello.hello()
hello

In :
页: [1]
查看完整版本: 自己写的库,linux中无法找到包