Pycharm 无法识别带有远程解释器的包

问题描述 投票:0回答:2

TL;DR - 这是一个 PyCharm 远程解释器问题。

远程库未正确同步,PyCharm 在使用远程解释器时无法正确索引。一切都运行良好。

以下是整个(目前不成功)调试过程

请参阅更新部分以缩小问题范围


我正在使用用

python -m venv venv
创建的虚拟环境,然后指向它,就像我一直使用 ssh 解释器一样。 conda 也会发生完全相同的情况。

配置解释器后,很多已安装的包被PyCharm标记为红色,不给出自动完成,并且不认识这些包。

这里是requirements.txt文件,配合

pip install -r requirements.txt

使用
--index https:<our_internal_pypi_server>
--extra-index-url <some_external_pypi_server>
algo_api>=2.5.0
algo_flows>=2.4.0
DateTime==4.7
fastapi==0.88.0
imagesize==1.4.1
numpy==1.23.1
opencv_python==4.6.0.66
overrides==6.1.0
pydantic==1.9.0
pymongo==4.1.1
pytest==7.1.2
pytorch_lightning==1.6.4
PyYAML==6.0
scikit_learn==1.1.3
setuptools==59.5.0
tinytree==0.2.1
#torch==1.10.2+cu113
#torchvision==0.11.3+cu113
tqdm==4.64.0
uv_build_utils==1.4.0
uv_python_utils>=1.11.1
allegroai
pymongo[srv]

这里是

pip freeze

absl-py==1.3.0
aggdraw==1.3.15
aiohttp==3.8.3
aiosignal==1.3.1
albumentations==1.3.0
algo-api==2.5.0
algo-flows==2.4.0
allegroai==3.6.1
altair==4.2.0
amqp==5.1.1
anomalib==0.3.2
antlr4-python3-runtime==4.9.3
anyio==3.6.2
astunparse==1.6.3
async-timeout==4.0.2
attrs==20.3.0
bcrypt==4.0.1
bleach==5.0.1
boto3==1.26.34
botocore==1.29.34
cachetools==5.2.0
certifi==2022.12.7
cffi==1.15.1
charset-normalizer==2.1.1
clearml==1.8.3
click==8.1.3
commonmark==0.9.1
contourpy==1.0.6
cpu-cores==0.1.3
cryptography==38.0.4
cycler==0.11.0
DateTime==4.7
decorator==5.1.1
deepmerge==1.1.0
dnspython==2.2.1
docker-pycreds==0.4.0
docopt==0.6.2
docutils==0.19
dotsi==0.0.3
efficientnet==1.0.0
einops==0.6.0
entrypoints==0.4
fastapi==0.88.0
ffmpy==0.3.0
fire==0.5.0
Flask==2.2.2
flatbuffers==1.12
focal-loss==0.0.7
fonttools==4.38.0
frozenlist==1.3.3
fsspec==2022.11.0
furl==2.1.3
future==0.18.2
gast==0.4.0
gitdb==4.0.10
GitPython==3.1.29
google-auth==2.15.0
google-auth-oauthlib==0.4.6
google-pasta==0.2.0
gradio==3.15.0
grpcio==1.51.1
gunicorn==20.1.0
h11==0.14.0
h5py==3.7.0
httpcore==0.16.3
httpx==0.23.1
humanfriendly==9.2
idna==3.4
image-classifiers==1.0.0
imageio==2.23.0
imagesize==1.4.1
imgaug==0.4.0
importlib-metadata==5.2.0
importlib-resources==5.10.1
imutils==0.5.4
inflection==0.5.1
iniconfig==1.1.1
itsdangerous==2.1.2
jaraco.classes==3.2.3
jeepney==0.8.0
Jinja2==3.1.2
jmespath==1.0.1
joblib==1.2.0
jsonschema==3.2.0
keras==2.9.0
Keras-Applications==1.0.8
Keras-Preprocessing==1.1.2
keyring==23.13.1
kiwisolver==1.4.4
kmeans1d==0.3.1
kornia==0.6.8
libclang==14.0.6
linkify-it-py==1.0.3
luqum==0.11.0
Markdown==3.4.1
markdown-it-py==2.1.0
MarkupSafe==2.1.1
maskrcnn-benchmark==1.1.2+cu113
matplotlib==3.6.2
mdit-py-plugins==0.3.3
mdurl==0.1.2
ml-distillery==1.0.1
more-itertools==9.0.0
multidict==6.0.3
networkx==2.8.8
numpy==1.23.1
oauthlib==3.2.2
omegaconf==2.3.0
opencv-python==4.6.0.66
opencv-python-headless==4.6.0.66
opt-einsum==3.3.0
orderedmultidict==1.0.1
orjson==3.8.3
overrides==6.1.0
packaging==22.0
pandas==1.5.2
paramiko==2.12.0
pathlib==1.0.1
pathlib2==2.3.7.post1
pathtools==0.1.2
pika==1.3.1
Pillow==9.3.0
pkginfo==1.9.2
pluggy==1.0.0
ply==3.11
promise==2.3
protobuf==3.19.6
psd-tools==1.9.23
psutil==5.9.4
py==1.11.0
pyasn1==0.4.8
pyasn1-modules==0.2.8
pyclipper==1.3.0.post4
pycocotools==2.0.6
pycparser==2.21
pycpd==2.0.0
pycryptodome==3.16.0
pydantic==1.9.0
pyDeprecate==0.3.2
pydub==0.25.1
pygit2==1.11.1
Pygments==2.13.0
pyhumps==3.8.0
PyJWT==2.4.0
pymongo==4.1.1
PyNaCl==1.5.0
pyparsing==2.4.7
pyrsistent==0.19.2
pytest==7.1.2
python-dateutil==2.8.2
python-multipart==0.0.5
pytorch-lightning==1.6.4
pytz==2022.7
PyWavelets==1.4.1
PyYAML==6.0
qudida==0.0.4
readme-renderer==37.3
requests==2.28.1
requests-oauthlib==1.3.1
requests-toolbelt==0.10.1
rfc3986==1.5.0
rich==12.6.0
rsa==4.9
s3transfer==0.6.0
scikit-image==0.19.3
scikit-learn==1.1.3
scipy==1.9.3
SecretStorage==3.3.3
segmentation-models==1.0.1
sentry-sdk==1.12.1
setproctitle==1.3.2
shapely==2.0.0
shortuuid==1.0.11
six==1.16.0
sklearn==0.0.post1
smmap==5.0.0
sniffio==1.3.0
starlette==0.22.0
tensorboard==2.9.1
tensorboard-data-server==0.6.1
tensorboard-plugin-wit==1.8.1
tensorflow==2.9.1
tensorflow-estimator==2.9.0
tensorflow-io-gcs-filesystem==0.29.0
termcolor==2.1.1
threadpoolctl==3.1.0
tifffile==2022.10.10
timm==0.5.4
tinytree==0.2.1
tomli==2.0.1
toolz==0.12.0
torch==1.10.2+cu113
torchmetrics==0.9.0
torchtext==0.11.2
torchvision==0.11.3+cu113
tqdm==4.64.0
twine==4.0.2
typing-utils==0.1.0
typing_extensions==4.4.0
uc-micro-py==1.0.1
urllib3==1.26.13
uv-build-utils==1.4.0
uv-envyaml==2.0.1
uv-python-serving==2.0.1
uv-python-utils==1.12.0
uvicorn==0.20.0
uvrabbit==1.4.1
validators==0.20.0
vine==5.0.0
wandb==0.12.17
webencodings==0.5.1
websockets==10.4
Werkzeug==2.2.2
windshield-grid-localisation==1.0.0.dev5
wrapt==1.14.1
yacs==0.1.8
yarl==1.8.2
zipp==3.11.0
zope.interface==5.5.2

以下最小测试程序

import pytest
import uv_python_utils
from importlib_metadata import version as version_query
from pkg_resources import parse_version
import requests


installed_pytest_version = parse_version(version_query('pytest'))
installed_uv_python_utils_version = parse_version(version_query('uv_python_utils'))
installed_importlib_metadata_version = parse_version(version_query('importlib_metadata'))
print(installed_pytest_version)
print(installed_uv_python_utils_version)
print(installed_importlib_metadata_version)

运行有输出

7.1.2
1.12.0
5.2.0

但是在IDE中,它看起来像这样:

这里是 JetBrains 的支持票(不确定是否对每个人都可见)。他们还无法提供帮助。

他们提出了,我已经做了以下所有但没有帮助的事情:

  1. 在远程删除
    ~/.pycharm_helpers
  2. 转到帮助|找到操作...并搜索“注册表...”。 在注册表中,搜索 python.use.targets.api 并将其禁用。 重新配置您的项目解释器。

他们查看了来自“帮助”-->“收集日志和诊断数据”的“日志”(不确定是哪个日志),并看到了以下内容

at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:92)
2022-12-15 11:14:42,932 [ 478638] WARN - net.schmizz.sshj.xfer.FileSystemFile - Could not set permissions for C:\Users\noam.s\AppData\Local\JetBrains\PyCharm2022.3\remote_sources\-2115534621\.\site-packages__1.zip to 1a4
2022-12-15 11:14:42,986 [ 478692] WARN - net.schmizz.sshj.xfer.FileSystemFile - Could not set permissions for C:\Users\noam.s\AppData\Local\JetBrains\PyCharm2022.3\remote_sources\-2115534621\.\.state.json to 1a4
2022-12-15 11:14:43,077 [ 478783] WARN - net.schmizz.sshj.xfer.FileSystemFile - Could not set permissions for C:\Users\noam.s\AppData\Local\JetBrains\PyCharm2022.3\remote_sources\-2115534621\.\python3.8.zip to 1a4

但我找不到任何许可违规行为。

我还尝试从本地和远程清除 Pycharm 中的所有内容,然后重新安装,这种情况仍然存在。

  1. 卸载 PyCharm,重新安装适用于同事的旧版本(适用于同事的同一目录中的同一远程,因此问题是本地的)
  2. 删除.idea
  3. 删除
    C:\Users\noam.s\AppData\Roaming\JetBrains
  4. 显然我尝试过使缓存无效并重新启动。

库只是没有下载到外部库[请参阅下面的更新],如项目菜单中所示,这与

pip freeze

不符

在 venv 情况下:

在 conda 情况下,下载的远程库甚至与 Pycharm 解释器屏幕不符!

这确实让我工作很困难,而且我找不到任何解决方法。 有什么想法吗?


更新 - 当 Pycharm 尝试从
skeletons.zip
解压时会出现问题。

我找到了避免“红色”的解决方法:

  1. 在资源管理器中打开远程库

  1. 删除该文件夹。
  2. 手动从 sculptors.zip 中提取文件夹
  3. 重新索引 pycharm

这给出了以下警告:

! Attempting to correct the invalid file or folder name
! Renaming C:\Users\noam.s\AppData\Local\Temp\Rar$DRa30340.29792\756417188\uvrabbit\aux.py to C:\Users\noam.s\AppData\Local\Temp\Rar$DRa30340.29792\756417188\uvrabbit\_aux.py

但允许我开始工作。但在我看来,这不是一个有效的解决方案,因为它需要手动处理,而不是让 IDE 完成这一项工作。


  1. 为什么会出现这种情况?
  2. 如何解决?
  3. 如何避免?
python windows pycharm remote-debugging
2个回答
4
投票

问题出在其中一个包 (

uvrabbit
) 中的一个名为
aux.py
的文件。

禁止在 Windows 中

aux
命名文件。很高兴知道。

这导致自动解包崩溃,从而导致索引失败。它也使得它失败了[这就是我最终找到它的方式]。

手动解压时,Winrar 将 

git clone

重命名为

aux.py
,从而绕过了大部分问题。
更改文件名并将软件包更新到没有名为 

_aux.py

的文件的版本解决了这个问题。


所以直接回答

因为其中一个包有一个名为
    aux
  1.  的文件
    
    [从 Linux 计算机重命名文件!]
  2. 切记不要在linux中给文件命名
  3. aux.py
  4. ,以免破坏Windows。 [或者不要使用Windows]。
    
        

0
投票
aux

我正在遵循您的“

更新”步骤,但是:

在资源管理器中打开
    PyCharm 2022.3.1
  1. 删除您在那里看到的所有目录。我的是:
    
  2. Remote Libraries
  3. 条目应该消失
    关闭项目和/或重新打开 Pycharm
  4. 使用远程解释器打开您的项目
  5. PyCharm 连接到远程解释器后,骨架更新应该很快就会开始。
  6. Remote Libraries
  7. 条目应自动重新添加
    不再有丢失包裹的错误
  8. 我很好奇你是否已经尝试过这个。

© www.soinside.com 2019 - 2024. All rights reserved.