W Visual Studio 2019 Próbuję dostać Intellisense do pracy z pakietem zainstalowanym za pomocą polecenia:

pip install -e "git+https://github.com/bmoscon/cryptofeed.git/#egg=cryptofeed"[all]

Oto dokumenty wyjaśniając, co robi. Wezwałem go za pomocą moich projektów wirtualnych projektów i wszystko wydawało się, że działa dobrze (tj. Wszystkie pliki wydawały się pobierać i linkować poprawnie).

Problemem, który mam, jest sama pakiet główny (Cryptofeed) nie jest przeznaczony przez IntelliSense (mówi: "Niestaczej importu Cryptofeed"), podczas gdy wszystkie inne pakiety zależności, które zostały zainstalowane z nim są rozpoznawalne.

Po wykonaniu czytania i niektórych testów jestem bardzo pewny, że powodem, dla którego nie działa, musi zrobić z tego, w jaki sposób pakunki są zainstalowane "Tryb rozwoju". W folderze My ./env/Lib/site-packages widzę, że Cryptofeed jest plikiem .egg-link (więcej informacji na temat tego Oto). Czy Visual Studio obsługuje te pliki (lub tylko cały "tryb edytowalny / rozwojowy" w ogóle) dla Intellisense? Czy jest coś, co jestem nieporozumienie, czy też zrobiłem źle?

Myślę, że warto wspomnieć również, że czytam te MS 'Docs co sprawiło, że myślę, że mógłbym zrobić rozwiązanie "Hacky", dodając ścieżkę wyszukiwania do kodu źródłowego, ale to nie wydawało się rozwiązać ani nic zrobić.

0
Bureto 25 październik 2020, 01:06

1 odpowiedź

Najlepsza odpowiedź

W końcu pracowałem. Próbowałem go na wielu repos / pakietach i działał na nich wszystkich.

Rozwiązanie obejmuje ręcznie dodawanie ścieżki wyszukiwania (jak wspomniano powyżej w moim puście zapytania). Nie wiem dokładnie dlaczego, ale wydaje się, że dodana ścieżka wyszukiwania musi docelowa katalog główny w pakiecie Python . Nie działa, jeśli właśnie dodałem katalog zawierający kod źródłowy.

Tj. Jeśli katalog źródłowy zainstalowanego pakietu zawiera poniżej katalogi:

pkgDir
├── pkgName
├── pkgName.egg-info
└── tests

W tym przykładzie należy spróbować dodawać pkgDir, a nie pkgName jako ścieżki wyszukiwania. Ten katalog zawiera również inne ważne pliki, np. setup.py; A może jeden z tych plików jest niezbędnych dla funkcjonowania Intellisense? NIE WIEM.

Czasami pakiety obsługują wiele języków, więc pamiętaj, aby dodać katalog, który jest dla Python . IIRC, to ten sam katalog, który ustawiasz dla flagi "podkatalogu" podczas instalacji pakietu.

e.g: pip install -e "git+https://github.com/ccxt/ccxt.git/#egg=ccxt&subdirectory=python"

Być może nie trzeba było użyć ustawienia subdirectory, jeśli setup.py był umieszczony u kołowa, ale zasadniczo to, co oznacza, że działa z katalogiem, który zawiera setup.py (i .gg-info folderu).


Ponownie, naprawdę nie wiem, dlaczego to działa dokładnie. Folder, którego potrzebujesz do celu, może wyglądać bardzo różni się od opisanego. Może ktoś inny może dać bardziej konkretną odpowiedź.

Powinienem wspomnieć, Intellisense zajmuje trochę czasu, aby załadować (prawdopodobnie w zależności od wielkości pakietu). Nie bądź zbyt szybki, aby założyć, że ścieżka wyszukiwania jest błędna (dla mnie zajęło około 1 minuty Praca od kiedy dodałem ścieżkę wyszukiwania).

Według MS Docs for Visual Studio (2019) Opcje wsparcia Pythona i ustawienia Tutaj ma opcję" aktualizuj ścieżki wyszukiwania podczas dodawania połączonych plików ". Jest to domyślnie włączone i nie działa w tym celu; Wydaje się, że odnosi się do innego rodzaju połączony pliku.

1
Bureto 25 październik 2020, 18:20