Pyfa - The Python Fitting Assistant

Some modules like capital shield boosters, during pve, would not be ran constantly. It would be nice to have an option to simulate the ehp/s and cap usage of the module while it is being “pulsed” at a particular rate.

Do Freighter fittings work? I only get 0 m3 of cargo for all of them when creating new fittings.

I just found a list of Alpha Clone Skill Level maximums and created an “ALPHA” character in Pyfa. Problem solved. Thanks

eve unviersity

Was adding my character and got hit with an error. Adding the logs here from the error window I received:
File “service\server.py”, line 29, in do_GET
File “service\esi.py”, line 234, in handleServerRequest
File “service\esi.py”, line 198, in handleLogin
File “service\esiAccess.py”, line 194, in auth
File “service\esiAccess.py”, line 219, in token_call
File “requests\sessions.py”, line 637, in post

Trying again nearly immediately after succeeded right away. Thanks for your work and this tool; much appreciated! [even if I miss EFT more]

Something I’ve noticed that bugs me slightly is the role/ship bonus popup isn’t uniform in what’s displayed across ship types. For example the Muninn, Vagabond and Ikitursa display the HAC Bonuses first and the Cruiser bonuses second whereas the rest of the HAC’s display the Cruiser bonuses first and the HAC Bonuses second. It seems to be mostly Minmatar and some Gallente ships that aren’t the same. I know it’s not a big thing but catches me out occasionally so would be nice to have it changed.

This appears across the below class groups:

Black Ops
Blockade Runners
Command Carriers
Command Destroyers
Command Ships
Covert Ops
DSTs
Electronic Attack Ships
HACs
HICs
Interceptors
Interdictors
Jump Freighters
Lancer Dreads
Logi Cruisers
Marauders
Stealth Bombers

Been getting to grips with pyfa - nice tool!
In attempting to use the damage stats and application profile graphs, I’ve realised that it’s easy to add the “currently open” fit and adjust the speed and direction to get a meaningful damage curve vs distance.

The bit that has me stumped is that although I can also add NPC fits by right-clicking in the bottom-right panel and choosing “Add Target Profile”, when I do that the NPC targets I choose are always at zero velocity with infinite signature. I guess I’m missing something, since I can’t edit the velocity (or signature) either.

I suspect I’m missing the point entirely, because Googling for this issue hasn’t thrown up any hits to enlighten me (neither has a review of the pyfa docs).

Tips would be most welcome - TIA! :slight_smile:

And while I’m asking, I just hit another weirdness - see pic below.
When I right-click, it overheats the modules, but the column with the info about how long they’ll survive is too narrow. No issue there except that it won’t let me change the width… I presume this must be a “me” problem because there are no issues about it on Github and I can’t believe that something so basic could be broken for everyone :slight_smile:

edit: forgot to add that I’m running v2.68.0
edit 2: cured, by using the “change high DPI settings” option in Windows…

Getting this error, starting two days ago, when trying to retrieve character skills:

pyfa v2.69.0
EVE Data Version: 3532181 (2026-09-22 09:31:10)

OS version: Windows-10-10.0.19045-SP0
Python version: 3.14.0 (tags/v3.14.0:ebf955d, Oct 7 2025, 10:15:03) [MSC v.1944 64 bit (AMD64)]
wxPython version: 4.3.1 (wxWidgets 3.3.3)
SQLAlchemy version: 2.0.51
Logbook version: 1.9.2
Requests version: 2.34.2
Dateutil version: 2.9.0.post0

####################

Traceback (most recent call last):
File “sqlalchemy\engine\base.py”, line 1969, in _exec_single_context
File “sqlalchemy\engine\default.py”, line 952, in do_execute
sqlite3.IntegrityError: UNIQUE constraint failed: ssoCharacterMap.characterID, ssoCharacterMap.ssoCharacterID

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File “gui\characterEditor.py”, line 973, in init
File “service\character.py”, line 511, in run
File “service\esi.py”, line 114, in getSkills
File “service\esi.py”, line 110, in getSsoCharacter
File “eos\db\saveddata\queries.py”, line 563, in commit
File “sqlalchemy\orm\session.py”, line 2035, in commit
File “”, line 2, in commit
File “sqlalchemy\orm\state_changes.py”, line 137, in _go
File “sqlalchemy\orm\session.py”, line 1316, in commit
File “”, line 2, in _prepare_impl
File “sqlalchemy\orm\state_changes.py”, line 137, in _go
File “sqlalchemy\orm\session.py”, line 1290, in _prepare_impl
File “sqlalchemy\orm\session.py”, line 4353, in flush
File “sqlalchemy\orm\session.py”, line 4488, in _flush
File “sqlalchemy\util\langhelpers.py”, line 122, in exit
File “sqlalchemy\orm\session.py”, line 4449, in _flush
File “sqlalchemy\orm\unitofwork.py”, line 465, in execute
File “sqlalchemy\orm\unitofwork.py”, line 590, in execute
File “sqlalchemy\orm\dependency.py”, line 1195, in process_saves
File “sqlalchemy\orm\dependency.py”, line 1258, in _run_crud
File “sqlalchemy\engine\base.py”, line 1421, in execute
File “sqlalchemy\sql\elements.py”, line 526, in _execute_on_connection
File “sqlalchemy\engine\base.py”, line 1643, in _execute_clauseelement
File “sqlalchemy\engine\base.py”, line 1848, in _execute_context
File “sqlalchemy\engine\base.py”, line 1988, in _exec_single_context
File “sqlalchemy\engine\base.py”, line 2365, in _handle_dbapi_exception
File “sqlalchemy\engine\base.py”, line 1969, in _exec_single_context
File “sqlalchemy\engine\default.py”, line 952, in do_execute
sqlalchemy.exc.IntegrityError: (sqlite3.IntegrityError) UNIQUE constraint failed: ssoCharacterMap.characterID, ssoCharacterMap.ssoCharacterID
[SQL: INSERT INTO “ssoCharacterMap” (“characterID”, “ssoCharacterID”) VALUES (?, ?)]
[parameters: (5, 3)]
(Background on this error at: Error Messages — SQLAlchemy 2.0 Documentation)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File “gui\statsPane.py”, line 80, in fitChanged
File “gui\builtinStatsViews\priceViewFull.py”, line 91, in refreshPanel
File “gui\builtinStatsViews\priceViewFull.py”, line 105, in refreshPanelPrices
File “sqlalchemy\orm\attributes.py”, line 569, in get
File “sqlalchemy\orm\attributes.py”, line 1096, in get
File “sqlalchemy\orm\attributes.py”, line 1126, in _fire_loader_callables
File “sqlalchemy\orm\state.py”, line 828, in _load_expired
File “sqlalchemy\orm\loading.py”, line 1686, in load_scalar_attributes
sqlalchemy.orm.exc.ObjectDeletedError: Instance ‘<Price at 0x26f52edaf10>’ has been deleted, or its row is otherwise not present.

To make it clear, the issue makes PYFA unusable, since it cannot display accurate character skills for the fits, thus giving incorrect information.

Reinstalling does nothing.

Using the now integrated DarkMode slows down the program to a level it’s almost unusable… in Bright Mode everything works fine…

Feature request: Additional default characters. Having an All 3s character, and an Max Alpha character would be a big boon to both players like me setting up fittings for others, as well as new players picking up the tool lightly.

I know we can create our own characters, but I cannot multi-select skills in that window to set them all to a new level, and it’s unreasonable to manually update every skill (nearly every obviously based on reqs).

If others have a character template that is either of these, I am keen to receive those as well, but I think adding these into default PYFA would be a great usability and accessibility improvement,

Question to all: do any of the pyfa devs ever post here anymore?
I just took a look and it seems to have been a few years. Maybe I’m missing something though.
And if in fact they don’t visit, do they even read the thread? Maybe the Github page is the only way to get issues addressed…

1 Like